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" }

吉地さんもすでにおっしゃっていますね。ガイドで他の例を見ることができます。ただし、: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

ここではattached_model(単数)を使用しています。これは、例で使用したものであるためです。has_manyしかない場合は、吉地氏が指摘したように、それに応じて変更してください。

于 2012-12-04T22:44:38.620 に答える