2017-02-20 4 views
0

は、基本的に我々は2つのモデルを持っていると私は本当に持っている意味は何台レールはhas_and_belongs_to_manyのバリエーションをサポートしていますか?

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 

が、それは可能ですか?

答えて

1

本当にhas_oneとbelongs_toが必要な場合は、結合テーブルを使用しないでください。イベントにguest_idを追加すれば十分です。

0

one_to_manyの関連付けを構築します。ここにそれがどのように見えるかがあります。

class Guest < ActiveRecord::Base 
    belongs_to :event 
end 

class Event < ActiveRecord::Base 
    has_many :guests 
end 

あなたはevent.guestsにより、イベントのゲストを取得することができ、ユーザーが突風でイベントがguest.event

になります取得するには
関連する問題