4

导轨 2.3.5

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

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

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

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

但是,这是行不通的。在该范围到位后,使用 TicketMarket CRUD 会导致“#TicketMarket:0x630bdf0 的未定义方法 `ticket_id'”错误。

什么是正确的做法,所以只有在使用 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
4

0 回答 0