0

ここに私のURLがあります:/creations/stock?id=3

リンクをクリックするとcreations_stock_path(:id => creation.id)、エラーが発生しますCouldn't find Creation with id=stock。私は本当に問題を理解していません.私は別のオブジェクト(製品)にも同じことがあり、それは機能します.

パラメータで送信されたものを確認すると、

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

どうして ???私のコントローラーでは、次のように書きました。

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

したがって、レールが Show アクションを使用したい理由と、パラメーターが間違っている理由が最初にわかりません...

何か案が ?

編集:私のroutes.rbファイル:

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

1 に答える 1

0

Creationこのエラーは、データベースに と等しい ID を持つレコードがないことを意味しますparams[:id]。データベースをチェックして、レコードが存在するかどうかを確認します。この例外は、本番モードで実行している場合、または少なくともconfig.consider_all_requests_localが false の場合に 404 ページを表示します。

例外を発生させたくない場合は、find_by_id代わりnilに、レコードが見つからないときに返されるものを試してください。

于 2013-03-29T14:28:37.280 に答える