[英]Couldn't find Object with 'id'=
被困在這里,可能是由於我的粗暴行為。
我正在建立一個帶有出價的兩面市場。 將devise用於此處相關的2種用戶類型,客戶和指南。 客戶建立行程,導游可以查看行程,然后出價。 一旦向導(主頁)登錄后,我就為其創建了一個自定義的登陸頁面,其中列出了客戶的旅行,我在向導控制器中使用了自定義視圖和方法來做到這一點,沒問題。
但是,當我嘗試從該頁面轉到下一個自定義頁面以查看指南的詳細信息(然后提交出價)時,突然出現“找不到'id'=“錯誤的錯誤信息與Trip.find(params [:id])相關(如果我對Trip.find(1)進行硬編碼,則可以工作)。
引導控制器
class GuidesController < ApplicationController
def home
@trips = Trip.all
@guide = current_guide
end
def view_trip
@trip = Trip.find(params[:id])
@guide = current_guide
end
end
指南的主頁(該指南單擊即可查看旅程)
<p>Guides's Email: <%= @guide.email %></p>
<% @trips.each do |trip| %>
<li>Location: <%= trip.location.description %></li>
<li>Details <%= trip.details %></li>
<p><%= link_to "View Details and Bid", guides_view_trip_path(trip) %></p>
<% end %>
然后當我嘗試訪問它時,該頁面上的錯誤輸出/單擊鏈接:amazonaws.com/guides/view_trip.1
Couldn't find Trip with 'id'=
Extracted source (around line #21):
19 def view_trip
20
21 @trip = Trip.find(params[:id])
22 #@trip = Trip.find(1)
23 @guide = current_guide
24 end
Request
Parameters:
{"format"=>"1"}
更改此行:
<p><%= link_to "View Details and Bid", guides_view_trip_path(trip) %></p>
通過
<p><%= link_to "View Details and Bid", guides_view_trip_path(id: trip.id) %></p>
我不知道您的routes.rb
設計是什么,如果您需要將此URL與rails默認的RESTful
URL一起使用,那么您的routes.rb
看起來像這樣
get 'guides/view_trip/:id(.:format)', to: "guides#view_trip", as: :guides_view_trip
#=> guides_view_trip GET /guides/view_trip/:id(.:format) guides#view_trip
現在您可以使用如下視圖
<%= link_to "View Details and Bid", guides_view_trip_path(trip) %>
#=> /guides/view_trip/1
如果您使用guides_view_trip_path(id: trip.id)
則URL看起來像是amazonaws.com/guides/view_trip?id=1
;如果您使用的是我描述的RESTful
,則URL看起來像是amazonaws.com/guides/view_trip/1
或者,您可以使用Trip.find(params[:id])
到Trip.find(params[:format])
希望能幫助到你
您的代碼應該像這樣
class GuidesController < ApplicationController
def home
@trips = Trip.all
@guide = current_guide
end
def view_trip
@trip = Trip.find(params[:format])
@guide = current_guide
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.