Ruby on rails 3 url和Rails中的参数错误
这是我的url:Ruby on rails 3 url和Rails中的参数错误,ruby-on-rails-3,params,Ruby On Rails 3,Params,这是我的url:/creations/stock?id=3 当我点击我的链接creations\u stock\u path(:id=>creation.id)时,我有一个错误找不到id=stock的创建。我真的不明白这个问题,我对另一个对象(产品)也有同样的问题,它可以工作 当我检查我的参数发送的内容时,我有 >> params => {"id"=>"stock", "action"=>"show", "controller"=>"creations"}
/creations/stock?id=3
当我点击我的链接creations\u stock\u path(:id=>creation.id)
时,我有一个错误找不到id=stock的创建。我真的不明白这个问题,我对另一个对象(产品)也有同样的问题,它可以工作
当我检查我的参数发送的内容时,我有
>> params
=> {"id"=>"stock", "action"=>"show", "controller"=>"creations"}
为什么???在我的控制器中,我写道:
def stock
@creation = Creation.find(params[:id])
end
所以我不明白为什么rails要使用ShowAction,为什么我的参数是错误的
有什么想法吗
编辑:My routes.rb文件:
get "creations/stock"
get "products/stock"
该错误意味着数据库中没有id等于params[:id]
的创建
记录。检查数据库以查看记录是否存在。此异常在生产模式下运行时显示404页面,或者至少在配置时显示404页面。请考虑\u all\u requests\u local
为false
如果您不想让它引发异常,请尝试find\u by\u id
,当未找到记录时,它将返回nil
。事实上,这是因为我的get“creates/stock”位于route.rb文件中的resources:creates
之后。我以前不知道这是强制性的。我只是为了……浪费了半个小时。。。没什么。如果这是问题所在,那么最好只在resources:creates
中添加一个块,然后在块中添加get:stock,on::collection
。这样,它就不会与show action冲突,您也不必担心路由中的层次结构。