我收到了错误:
ActiveRecord::RecordNotFound in ShoesController#choose_store_shoes
Couldn't find Store without an ID
请注意,shoes
属于Store
。这一切都发生在鞋子控制器中,从see_shoes
操作开始,然后当用户点击Store
时,它会使用choose_store_shoes
操作。这应该显示商店和鞋子。我只需要帮助实际访问该页面。
ShoesController
def see_stores
@stores = Store.paginate(:page => params[:page], :per_page => 20)
end
def choose_store_shoes
@store = Store.find(params[:id])
end
我的路线:
resources :shoes do
collection do
get 'see_stores'
get 'choose_store_shoes'
end
end
然后我点击商店的视图,它应该显示它:
<% for store in @stores %>
<%= link_to choose_store_shoes_shoes_path(store.id) do %>
<%= store.name %>
<%= store.location %>
<% end %>
<% end %>
我认为我正在链接或错误地路由它。什么是正确的方式?
提前谢谢。
答案 0 :(得分:2)
你正在解析:id,当url方案中没有:id时。你需要修理你的路线。
在您的routes.rb中,将collection do
更改为member do
,以便网址方案接受:id。
对路线进行此更改后,您可以使用正确的ID指定所需的商店:127.0.0.1:3000/shoes/:id/choose_store_shoes