0

所以我想做这样的事情,我一直在玩弄语法并环顾四周,但仍然没有雪茄。这可能吗?

validates :description, presence: false unless object.attached_model.description == "Custom"

has_many: :attached_model
4

1 回答 1

1

http://guides.rubyonrails.org/active_record_validations_callbacks.html#using-a-symbol-with-if-and-unless

validates :description, :presence => true,
    :unless => Proc.new { |a| a.attached_model.description == "Custom" }

我看到 Yoshiji 先生也提到了这一点。您可以在指南中查看更多示例。但是请注意,您无法验证 :presence => false (这没有任何作用)。如果要验证它是否为空白,则需要编写自定义验证器。

validate :description_not_present

def description_not_present
  errors.add(:description, "should be blank") if description.present? && a.attached_model.description != "Custom"
end

我在这里使用 attach_model (单数),因为这是您在示例中使用的,如果您只有 has_many 则相应地更改它,就像 MrYoshiji 指出的那样。

于 2012-12-04T22:44:38.620 回答