我有两个可以添加标签的模型。
我有Tag
模型属于两者,所以我有两个连接模型
我收到Could not find the association :tag_tickets in model Ticket
错误,但我的关联就在那里。
class Ticket < ActiveRecord::Base
has_many :tag_tickets
has_many :tags, :through => :tag_tickets
end
我只关注Ticket
模型,但玩家模型看起来应该相似。
这是我对TagTicket
class CreateTagTickets < ActiveRecord::Migration
def change
create_table :tag_tickets do |t|
t.integer :ticket_id
t.integer :tag_id
t.timestamps
end
end
end
答案 0 :(得分:1)
您需要首先指定:tag_tickets join:
class Ticket < ActiveRecord::Base
has_many :tag_tickets
has_many :tags, :through => :tag_tickets
end
您还需要在TagTicket
模型中指定联接:
class TagTicket < ActiveRecored::Base
belongs_to :ticket
belongs_to :tag
end
或者,您可以跳过所有这些并使用habtm连接(仅在tag_tickets连接真正仅用作连接并且没有自己的主键时才推荐)。在这种情况下,您将没有TagTicket模型(只是一个tag_tickets表),Ticket模型将如下所示:
class Ticket < ActiveRecord::Base
has_and_belongs_to_many :tags
end