控制器中的Rails 4设置参数?

时间:2014-01-01 19:20:35

标签: ruby-on-rails ruby-on-rails-4

如何在rails 4控制器中覆盖params?

以下似乎不起作用:

params[:post_type_id] = 2
@post = current_user.posts.new(post_params)

即使我手动设置,也会引发Post type can't be blank错误。

以下是我的强参数函数:

def post_params
    params.require(:post).permit(:title, :body, :post_type_id)
end

1 个答案:

答案 0 :(得分:2)

问题在于permit。它返回一个新的哈希值,所以你实际上并没有改变params变量(不管怎样它都不是正常变量)

这可以通过以下方式轻松解决:

post_details = post_params
post_details[:post_type_id] = 2
@post = current_user.posts.new(post_details)