所以我开始掌握permit
(Rails 新手,当然还有 Rails 4)。
当我通过路径传递参数时,例如form_for(@comment, :url => post_comments_path(@post.id))
日志显示它正在以这种格式传递:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"UKBczLBwbh/AF2XSTlWmPJcFEcgTSXA9PBE6VP6sD4k=",
"user"=>{"first_name"=>"Jim Friner", "email"=>"jfriner@gmail.com"}, "comment"=>{"content"=>"Hey dudez"},
"commit"=>"Create Comment", "post_id"=>"1"}
如您所见,帖子 ID 没有被用户或评论包装。它不是散列中的散列。我找到的关于如何使用许可的大多数教程和答案都假定它是提交的表单,因此在user
or 或comment
. 他们提出以下建议:
params.require(:user).permit(:first_name, :email)
但是在这种情况下,没有什么可用于 require 的,所以我想我的问题是,我只是省略 require 并且它应该可以工作还是我做这样的事情:
params.require(:post_id).permit(:post_id)
要不就
params.permit(:post_id)
谢谢!