【问题标题】:rails 4 strong params: make them conditional?rails 4 strong params:使它们有条件?
【发布时间】:2013-10-23 08:31:07
【问题描述】:

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

例如:

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

我在上面的示例中允许使用此 :role 属性。我只希望在 Rails.env.development 中允许此属性有没有办法做到这一点?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我很抱歉,刚刚看到答复日期。这个问题很老了。
    • 旧与否,您给出的答案是有效且有用的。只需要稍微了解一下语法,但我认为我至少会使用它!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多