rails 4强参数:让他们有条件?

Rub*_*tic 5 conditional strong-parameters ruby-on-rails-4

有没有办法使strong_params有条件? 无需编写2个单独的方法?如果某个条件为真,则希望在许可列表中添加某些属性

例如:

devise_parameter_sanitizer.for(:user) {|u| u.permit(:user,
                                                    :email,
                                                    :role,
                                                    )}
Run Code Online (Sandbox Code Playgroud)

我有这个:上面例子中允许的角色属性.我只希望在Rails.env.development有这种方法的时候允许这个属性吗?

Fra*_*tia 9

这是否达到了预期的效果?

user_params = [ :user, :email, (:role if Rails.env.development?) ].compact
devise_parameter_sanitizer.for(:user) { |u| u.permit(*user_params) }
Run Code Online (Sandbox Code Playgroud)


Rub*_*tic 1

还没有找到解决方案,所以我做了 2 个方法并调用正确的 param 方法来处理记录。