validates_uniqueness_of带有'has_many through =>'关系

时间:2012-12-18 18:40:15

标签: ruby-on-rails

Rails 2.3.5

下面,我有一个TicketMarket模型,管理员维护“市场”名称。该表通过关联表链接到票证表。

我需要为TicketMarket CRUD提供“validates_uniqueness_of”,但是如下所示,当有人创建故障单并检查故障单表单上的某些市场复选框时,它将导致验证错误。

我见过的Everythign说正确的做法是根据“ticket_market_associations”表的“ticket_id”字段确定验证范围:

validates_uniqueness_of :market_name, :case_sensitive => false, :scope => :ticket_id

然而,这不起作用。使用该范围后,使用TicketMarket CRUD会导致#TicketMarket的“未定义方法`ticket_id”:0x630bdf0“错误。

在这里做什么是正确的,所以只有在使用TicketMarket CRUD而不是Ticket CRUD时才会进行验证?

谢谢!

class TicketMarket < ActiveRecord::Base
  has_many :ticket_market_associations
  has_many :tickets, :through => :ticket_market_associations

  validates_presence_of :market_name
  validates_uniqueness_of :market_name, :case_sensitive => false
end

0 个答案:

没有答案