如何在没有attr_accessible的模型验证中访问嵌套属性哈希



我想为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来访问passengers_attributes散列。但是现在,我不知道如何访问它。

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

validates :passengers, length: { maximum: 10 }

最新更新