rails是否支持has_and_belongs_to_many的变体?

时间:2017-02-20 23:30:34

标签: ruby-on-rails rails-migrations jointable

基本上我们有两个模型和一个连接表

class Guests < ActiveRecord::Base
  has_and_belongs_to_many :events
end

class Event < ActiveRecord::Base
  has_and_belongs_to_many :guests
end

class CreateJoinTableGuestsEvents < ActiveRecord::Migration
  def change
    create_join_table :guests, :events do |t|
      t.index [:guest_id, :event_id]
      t.index [:event_id, :guest_id]
    end
  end
end

我真正想要的是:

class Guest < ActiveRecord::Base
  has_one :event
end

class Event < ActiveRecord::Base
  belongs_to :guests
end

是否可以使用连接表?

2 个答案:

答案 0 :(得分:1)

如果你真的想要has_one和belongs_to,你不应该使用连接表。将guest_id添加到事件中就足够了。

答案 1 :(得分:0)

建立one_to_many关联。这是它的样子。

((B) -> Void) -> T

您可以Self获取活动的嘉宾,并获得用户阵风的活动class Guest < ActiveRecord::Base belongs_to :event end class Event < ActiveRecord::Base has_many :guests end