0

我有两个模型可以添加标签。

  • 播放器

我有一个Tag属于两者的模型,所以我有两个连接模型

  • tag_ticket
  • 标记播放器

我收到一个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
4

1 回答 1

1

您需要先指定 :tag_tickets 加入,如下所示:

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
于 2012-02-29T17:03:34.430 回答