【发布时间】:2013-07-25 23:30:12
【问题描述】:
我的模型中有一个数组字段,我正在尝试更新它。
我的强参数方法如下
def post_params
params["post"]["categories"] = params["post"]["categories"].split(",")
params.require(:post).permit(:name, :email, :categories)
end
我在控制器中的操作如下
def update
post = Post.find(params[:id]
if post and post.update_attributes(post_params)
redirect_to root_url
else
redirect_to posts_url
end
end
但是,每当我提交更新帖子时,我都会在我的开发日志中看到
Unpermitted parameters: categories
传递的参数是
Parameters: {"utf8"=>"✓", "authenticity_token"=>"auth token", "id"=>"10",
"post"=>{"name"=>"Toni Mitchell", "email"=>"eileen_hansen@hayetokes.info", "categories"=>",2"}}
我想这与属性 categories 是一个数组这一事实有关,因为其他一切看起来都很好。再说一次,我可能是错的。那么,我的代码有什么问题,为什么在明确允许的情况下不让我保存类别字段?谢谢。
【问题讨论】:
-
可能是因为你设置categories参数值的方式,iirc的params对象不是简单的hash,你试过更简单的例子吗?
标签: ruby-on-rails ruby ruby-on-rails-4 strong-parameters