【问题标题】:Rails 3 config setting for attr_accessible/protected用于 attr_accessible/protected 的 Rails 3 配置设置
【发布时间】:2023-03-20 19:00:02
【问题描述】:

我刚刚花了很长时间尝试解决模型中的虚拟属性问题。原来我只是忘记在我的模型中将它添加到 attr_accesible 中。当然,我应该更早地抓住它,或者更好地开始整个努力,首先将它添加到 attr_accessible 中。

为了防止这种情况再次发生,如果我尝试批量分配某些内容并在它受到保护/无法访问时对其进行验证,是否有一个配置设置可以标记为在开发中引发异常?我知道我可以使用 set config.active_record.whitelist_attributes = true 来要求所有人加入白名单,但我的问题更多的是基于单个属性。

例如,如果我有一个带有 attr_accessible :name 的模型然后添加 :nickname(虚拟或非虚拟),则上面的行不会警告我,并尝试批量分配它以检查存在 => true。我希望它警告我,我试图通过批量分配来验证受保护的属性。

【问题讨论】:

    标签: ruby-on-rails mass-assignment virtual-attribute


    【解决方案1】:

    Rails 3.2 有一个配置选项可以在这种情况下引发ActiveModel::MassAssignmentSecurity::Error

    config.active_record.mass_assignment_sanitizer = :strict

    参见Rails 3.2 release notescommit in Rails

    【讨论】:

    • 对于 Rails gist.github.com/2027920
    • rails 3.1 确实是我所在的位置。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多