【问题标题】:Rails 4 ActiveRecord Exclusion Validation for AssociationRails 4 ActiveRecord 关联排除验证
【发布时间】:2016-06-11 10:58:41
【问题描述】:

我正在尝试验证模型中的关联并排除某个对象进行验证,但似乎无法使其正常工作。这是我的代码:

validates :user, presence: true, exclusion: { in: [:lot_high_bidder] }

我想它正在尝试将 :user 与符号 :lot_high_bidder 进行直接比较,这显然总是会失败,但这是否意味着我不能在排除验证器中使用方法名称或者语法错误?

【问题讨论】:

  • 你能解释一下你想要达到的目标吗?你说你想要排除对象进行验证 - 也许你需要条件验证 if: or unless: options for validator - edgeguides.rubyonrails.org/…
  • 由于排除本身是一种禁止属性成为列出值之一的验证(即禁止用户等于 :lot_high_bidder)
  • 抱歉,我通过出价关联认识该用户,我正试图阻止当前的高出价用户再次出价

标签: ruby-on-rails validation ruby-on-rails-4 activerecord


【解决方案1】:

Rails 有一个 validates_associated 方法,用于验证模型上的关联

http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_associated

不确定是否可以只验证 user_id 而不是用户关联。

希望对你有帮助

【讨论】:

  • 我确实想到了这一点,但在我看来,它更多的是用于同时执行该对象自己的验证,而不是验证关联是否可接受。
猜你喜欢
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多