我想检查一下我所看到的行为是否确实是我认为的。
我已经用Google搜索了答案,但找不到任何确认这是预期行为的文档。
我正在使用Backbone 0.9.2.1和Rails 3.2.3
当我将模型保存在主干中时,我正在查看HTTP标头并看到它发送了一个JSON表示,例如
{"title":"I think...","id":2,...}
在控制器里面,我一直心不在焉地使用params [:意见],奇怪的是工作正常,但现在我遇到了麻烦,我注意到我的params hash实际上是
{"title" => "I think...",
"id" => 2
"opinion" => {"title" => "I think ..."},
...
(我遇到麻烦的原因是id存在于params [:id]但不是params [:opinion] [:id]
在我看来,在调用控制器方法之前,任何与attr_accessible名称匹配的参数都会映射到此params [:opinion]哈希值。
该模型当然是意见。 控制器名为opinion_controller,正在通过此路由到达:
resources :stories, :controller => 'opinions'
(在重命名某些事情的过程中)
这是预期的行为吗? 有人能指出我可以阅读的文档吗?
答案 0 :(得分:2)
修改强> 从API文档: http://api.rubyonrails.org/classes/ActionController/ParamsWrapper.html
By default, if you don’t specify the key in which the parameters would be wrapped to, ParamsWrapper will actually try to determine if there’s a model related to it or not.
这个答案也很好地描述了它: https://stackoverflow.com/a/9134057/341692