Ruby on rails 关联对象相关属性的复杂rails验证

Ruby on rails 关联对象相关属性的复杂rails验证,ruby-on-rails,Ruby On Rails,我有两件东西:订票和优惠券 我想根据下面的验证将优惠券与预订联系起来 下面代码的问题是语法不正确,其次我不能使用符号样式的语法(:)操作符访问第二个对象的内部值 with_options if: :coupon?, unless: coupon.future_useable? do |booking| validates :start_time_minutes, numericality: { greater_than_equal_to: coupon.start_time_minu

我有两件东西:订票和优惠券

我想根据下面的验证将优惠券与预订联系起来

下面代码的问题是语法不正确,其次我不能使用符号样式的语法(:)操作符访问第二个对象的内部值

with_options if: :coupon?, unless: coupon.future_useable? do |booking|
  validates :start_time_minutes, numericality: {
    greater_than_equal_to: coupon.start_time_minutes }
  validates :finish_time_minutes, numericality: {
    less_than_equal_to: coupon.finish_time_minutes }
end

编写上述代码的最佳方法是什么?

根据您的问题,这里的代码太多,无法阅读。你需要更具体地说明问题所在。
with_options if: :coupon?, unless: 'coupon.future_useable?' do
  validates :start_time_minutes, numericality: {
    greater_than_equal_to: -> { coupon.start_time_minutes} }

  validates :finish_time_minutes, numericality: {
    less_than_equal_to: -> { coupon.finish_time_minutes } }
end