2013-03-29 60 views
0

這裏是我的網址:/creations/stock?id=3錯誤PARAMS使用Rails

當我點擊我的鏈接creations_stock_path(:id => creation.id)我有一個錯誤Couldn't find Creation with id=stock。我真的不明白這個問題,我有相同的另一個對象(產品),它的工作原理。

當我檢查什麼是我的PARAMS發送,我有

>> params 
=> {"id"=>"stock", "action"=>"show", "controller"=>"creations"} 

爲什麼???在我的控制,我寫道:

def stock 
    @creation = Creation.find(params[:id]) 
end 

所以我不先了解爲什麼導軌要使用顯示操作和也是爲什麼我PARAMS是錯誤的...

任何想法?

編輯:我的routes.rb文件:

get "creations/stock" 
get "products/stock" 

回答

0

錯誤意味着有在具有等於params[:id]的ID數據庫中沒有Creation記錄。檢查你的數據庫以查看記錄是否存在。這個例外在生產模式下運行時顯示404頁面,或者至少當config.consider_all_requests_local爲假時顯示404頁面。

如果您不希望它引發異常,請嘗試find_by_id,而不是在找不到記錄時返回nil

+0

事實上,這是因爲我在我的route.rb文件中獲得「創作/股票」後是'resources:creations'。我不知道以前是強制性的。我只失去了半個小時......沒有任何東西。 – eluus

+0

如果這是問題,那麼最好將一個塊添加到'resources:creations'並在塊中添加'get:stock,在::collection'上。這樣,它不會與show動作衝突,並且不必擔心路線中的層次結構。 – jvnill

+0

感謝您的建議 – eluus