【问题标题】:How to access nested attributes hash in model validation without attr_accessible in rails 4?如何在 Rails 4 中没有 attr_accessible 的情况下访问模型验证中的嵌套属性哈希?
【发布时间】:2014-05-05 21:09:07
【问题描述】:

我想为 rails 4 中嵌套属性关系的记录长度创建验证。由于 attr_accessible 的限制,我似乎无法访问嵌套字段属性哈希。

这是我正在尝试创建的验证:

class Purchase
  MAX_PASSENGERS = 5

  validate :passengers_within_bounds

  accepts_nested_attributes_for :passengers

  private

  def passengers_within_bounds
    if passengers_attributes
      if (passengers.size + passengers_attributes.size) > MAX_PASSENGERS
        errors.add 'state', :max_passengers_exceeded
      end
    end
  end
end

在 rails 3 中,我会使用 attr_accessible 来访问乘客属性哈希。但是现在,我不知道如何访问它。

你们知道在 Rails 4 的验证中访问嵌套属性哈希的方法吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 nested-forms attr-accessible


    【解决方案1】:
    validates :passengers, length: { maximum: 10 }
    

    【讨论】:

    • 我认为他要的是上限而不是硬性要求:validates :passengers, length: { maximum: 10 }
    猜你喜欢
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多