0

雖然以下this指南,我正試圖計劃如何爲我的應用程序做適當的軌道關聯。軌道協會的澄清

用簡單的英語,我有一個評論的腳手架形式,必須由註冊用戶創建。我想製作一個有很多評論的音樂會模型,如果評論是用藝術家,場地和日期(來自評論表單的所有字段)創建的,但尚未完成,則會創建一個音樂會對象並且此評論將屬於到它。但是,如果創建的評論與以前的評論具有相同的藝術家,地點和日期,則此評論將添加到已存在的音樂會對象中。

我還想要一個藝術家模型,有很多音樂會,可能有很多評論(雖然這似乎沒有必要,因爲評論包含在音樂會中)。

從我的理解我想要做這樣的事情:

class User < ActiveRecord::Base 
    has_many :reviews 
end 

class Review < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :concert 
    has_one :concert, through => :artist #and review's venue and date? 
end 

class Concert < ActiveRecord::Base 
    has_many :reviews 
    belongs_to :artist 
end 

class Artist < ActiveRecord::Base 
    has_many :concerts 
end 

,然後我想我會需要4個不同的遷移文件,並需要確保他們使用belongs_to但不has_many或任何的其他協會?

我只是想確保我有一個很好的基於我正在嘗試做什麼的正確關聯的一般想法。任何幫助或建議/反饋表示讚賞,這是我的第一個rails應用程序,謝謝。

+0

問題是什麼? – jcm

+0

基於簡單的英語描述我想要什麼類型的關係,這是正確的編碼方式嗎?以及has_one關係如何在Review音樂會上發揮作用? – parameter

回答

0

的審查屬於音樂會所以在Review刪除

has_one :concert, through => :artist 

我不知道你的應用不夠好,但你可能想Review

has_one :artist through => :concert 

雖然。見Rails Association Basics