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

时间:2013-10-23 08:31:08

标签: ruby-on-rails-4 conditional strong-parameters

有没有办法让strong_params有条件? 无需编写2个单独的方法?如果有人想在某个条件为真时将某些属性添加到许可列表中

例如:

devise_parameter_sanitizer.for(:user) {|u| u.permit(:user,
                                                    :email,
                                                    :role,
                                                    )}

我有这个:上面例子中允许的角色属性。我只想在Rails.env.development有办法做到这一点时允许这个属性吗?

2 个答案:

答案 0 :(得分:9)

这是否达到了预期效果?

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

答案 1 :(得分:1)

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