Ruby on rails Rails属于具有唯一性范围的直通解决方案
我有以下链接模型:Ruby on rails Rails属于具有唯一性范围的直通解决方案,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,我有以下链接模型: class Event has_many :orders has_many :tickets, through: :orders end class Order belongs_to :event has_many :tickets end class Ticket belongs_to :order ? :event, ?: :order validates :name, uniqueness: { scope: :event
class Event
has_many :orders
has_many :tickets, through: :orders
end
class Order
belongs_to :event
has_many :tickets
end
class Ticket
belongs_to :order
? :event, ?: :order
validates :name, uniqueness: { scope: :event }
end
问题是,无论我在上面的两个?
标记中填写什么,我在验证我的票证模型实例时都会遇到不同的错误。我尝试过的组合:
/将
:这是最干净的解决方案。但是,在验证票据时,会发生以下错误:委托给
没有此类列:tickets.event
/有一个
:这实际上是一种不好的做法,因为这会在保存时影响事件模型。这里的错误是:到
为#
汤姆你不需要问号行。相反,尝试将验证更改为
验证:名称、唯一性:true、范围::事件
您的票证型号应始终属于\u to:event
。下订单时,票据应与事件以及订单相关联。这意味着您需要将事件\u id:integer
添加到您的票证模型中