【发布时间】:2017-08-07 14:01:33
【问题描述】:
我想为模型添加条件自定义验证
Rails 允许创建方法以创建自定义验证
class Invoice < ApplicationRecord
validate :expiration_date_cannot_be_in_the_past
def expiration_date_cannot_be_in_the_past
if expiration_date.present? && expiration_date < Date.today
errors.add(:expiration_date, "can't be in the past")
end
end
它还允许创建条件验证
class Order < ApplicationRecord
validates :card_number, presence: true, if: :paid_with_card?
def paid_with_card?
payment_type == "card"
end
end
如何混合使用?
我的猜测是这样的
validate :condition, if: :other_condition
但这会产生一个 SyntaxError:
syntax error, unexpected end-of-input, expecting keyword_end
【问题讨论】:
标签: ruby-on-rails ruby validation activerecord ruby-on-rails-5