簡體   English   中英

如何將記錄添加到has_many:通過Ruby on Rails中的關聯

[英]how to add records to has_many :through association in Ruby on rails

我有這些模特

class EventGroups < ActiveRecord::Base      
  has_many  :festival_venues
  has_many  :venues, :through => :festival_venues    
end

class Venue < ActiveRecord::Base 
  has_many  :festival_venues
  has_many  :event_groups, :through => :festival_venues 
end

class FestivalVenue < ActiveRecord::Base 
  belongs_to :event_group
  belongs_to :venue
end
  1. 現在,我想通過Eventgroups創建一個Venue ,並在FestivalVenue中創建記錄。
  2. 當我刪除活動組中VenueFestivalVenue相關的記錄時,也應將其刪除。

我怎樣才能做到這一點?

class EventGroup < ActiveRecord::Base      
  has_many  :festival_venues, dependent: :destroy
  has_many  :venues, :through => :festival_venues, :dependent => :destroy
end

class Venue < ActiveRecord::Base 
  has_many  :festival_venues
  has_many  :event_groups, :through => :festival_venues  
end

class FestivalVenue < ActiveRecord::Base 
  belongs_to :event_group
  belongs_to :venue
end

現在,如果將event_group變量綁定到EventGroup對象,則可以使用以下命令創建Venue (及其FestivalVenue ):

venue = Venue.create(your_attributes)
event_group.venues << venue

在下面的代碼中,模型類名稱必須為單數。 將類名稱EventGroups更改為EventGroup 現在它將像魅力一樣工作。

class EventGroup < ActiveRecord::Base      
  has_many  :festival_venues, dependent: :destroy
  has_many  :venues, :through => :festival_venues, :dependent => :destroy
end

剩下的代碼很好。

class Venue < ActiveRecord::Base 
  has_many  :festival_venues
  has_many  :event_groups, :through => :festival_venues  
end

class FestivalVenue < ActiveRecord::Base 
  belongs_to :event_group
  belongs_to :venue
end

希望它會有所幫助。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM