2013-10-27 138 views
0

這是我的第一個問題,我已經尋找類似的問題,但說好的發現了它,我開始學習Ruby on Rails和我也跟着當然,對於具有的has_many如何添加has_many關聯?

我通過創建我的班隊創建foreing鍵說。

rails g model Band name:string website:string email:string 

,我也創建了我的類體裁以同樣的方式 這個訂單生成像

class Band < ActiveRecord:Base 
end 

類,以便修改我的文件Band.rb這樣

class Band < ActiveRecord:Base 
    has_many :Genres 
end 

保存更改(Ctrl + S),當我嘗試創建一個新的對象o類帶

a = Band.new 

一個處理不當流派atribut

+0

需要查看更多代碼。您的流派是否與樂隊擁有belongs_to關聯?你收到什麼錯誤? – DashControl

+0

你用'rake db:create'和'rake db:migrate'創建了數據庫嗎? –

回答

0

編輯您的band.rb文件:

class Band < ActiveRecord:Base 
    has_many :genres 
end 

重裝,一切都應該是從那時起罰款。

0

首先請確保你的類型的型號,那麼

belongs_to :band 

另外,在你帶模型小寫,因爲一個流派是屬於你需要有一個帶你HAS_MANY像這樣

has_many :genres 

關係在你的類型表中,band_id將指向類型所屬的樂隊。

,那麼你可以很容易地找到樂隊的band.In你控制器,你可以找到一個帶

@band = Band.find(params[:id]) 

,並檢查設置,然後才能做的流派流派

@genre = @band.genres 

這會給你帶來正確的流派。

然而,這似乎更像是一種情況,一個樂隊的has_many:風格和流派的has_many:bands.In這種情況下,你可能想使用一個has_and_belongs_to_many relationship.You可以找到在軌關聯的更多細節指導這裏:http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association

如果你需要創建一個單獨的表,其中每一流派和樂隊將指向對方has_and_belongs_to_many關係走,所以你可以關聯他們很容易

0

在數據庫中的新方法不會產生實際的記錄,你必須調用保存在實例上。要創建關聯類型,可以在已存在的Band實例上調用create_genre。