导轨 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