0

我收到错误:

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 %>

我想我链接或路由不正确。什么是正确的方法?

先感谢您。

4

1 回答 1

2

当 url 方案中没有 :id 时,您正在解析 :id。你需要修复你的路线。

在您的 routes.rb 中,更改collection domember do使 url 方案接受 :id。

对路线进行此更改后,您可以使用正确的 id 指定您想要的商店:127.0.0.1:3000/shoes/:id/choose_store_shoes

于 2012-05-14T03:30:41.643 回答