如何在 Rails 强参数中添加默认数据?

suy*_*esh 4 ruby sorcery ruby-on-rails-4

假设我想在管理中创建用户时生成并设置用户的默认密码。

我想做这样的事情

 def user_params
    params.require(:user).permit(:first_name, :last_name, :email, :password=> @default_generated_password, :password_confirmation => @default_generated_password)
end
Run Code Online (Sandbox Code Playgroud)

我正在使用巫术进行用户身份验证。我有一种感觉,这是完全错误的方式,但我该怎么做呢?

Ast*_*ery 5

你想使用reverse_merge(rails 5.1 中出现的) 或with_defaults(rails 5.2 中出现的别名)

def user_params
  params
      .require(:user)
      .permit(:first_name, :last_name, :email, :password, :password_confirmation)
      .with_defaults(password: @default_generated_password, password_confirmation: @default_generated_password)
end
Run Code Online (Sandbox Code Playgroud)