使用Rails的URL中的错误参数

时间:2013-03-29 14:19:05

标签: ruby-on-rails-3 params

这是我的网址:/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

所以我不明白为什么rails想要使用Show动作以及为什么我的params错了......

有什么想法吗?

编辑:我的routes.rb文件:

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

1 个答案:

答案 0 :(得分:0)

错误表示数据库中没有Creation条记录,其id等于params[:id]。检查数据库以查看记录是否存在。此异常在生产模式下运行时显示404页面,或者至少在config.consider_all_requests_local为假时显示。

如果您不希望它引发异常,请尝试使用find_by_id,而不会在找不到记录时返回nil