强参数 - 手动白名单

时间:2014-05-19 00:32:30

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

对于新的rails应用程序:

rails generate scaffold user name:string

这在控制器中工作正常:

def user_params
    params.require(:user).permit(:name)
end

但是这......

def user_params
    params.require(:user).tap do |whitelist|
        whitelist[:name] = params[:user][:name]
    end
end

...给我一个错误" ActiveModel :: ForbiddenAttributesError"

为什么这样?看一下点击/白名单的例子,应该有用吗?

1 个答案:

答案 0 :(得分:1)

尝试稍微调整一下:

def user_params
  params.require(:user).permit(:name).tap do |whitelist|
    whitelist[:name] = params[:user][:name]
  end
end

在调用attribute方法

之前允许.tap