2012-05-14 48 views
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 %> 

我想我的連接或不正確路由它。什麼是正確的方法?

預先感謝您。

回答

2

您解析:id,當url方案中沒有:id時。你需要修理你的路線。

在您的routes.rb中,將collection do更改爲member do,以便url方案接受:id。

你做了這些改變對你的路線後,您就可以指定要使用正確的ID用來存儲:127.0.0.1:3000/shoes/:id/choose_store_shoes

+1

謝謝。還必須改變我的'link_to'這個小一點:'<%= link_to choose_store_shoes_shoe_path(store)do%>' – LearningRoR

相關問題