2011-02-11 116 views
0

我一直在設置不同的關係幾個小時,現在我不知道如何做一個has_many關係,我正在使用。不知道這是否只是命名衝突或我只是不理解。困惑於建立一個has_many關係

這裏是我的數據庫表:

show_names (table name): 
id 
show_id 
name 

shows (table name): 
id 
length 
synopsis 
number_of_episodes 
status 

所以每次演出有許多可能的名字。所以我想設置一個has_many的關係,所以我可以這樣打電話:

Show.all.shownames[0].name 

這會給我第一個名字。

這裏是我的模型的代碼示例,以及我認爲我搞亂的地方。

class ShowName < ActiveRecord::Base 
    has_many :shows 
end 

class Show < ActiveRecord::Base 
    belongs_to :shownames 
end 

使用ShowName.all工程,以獲取數據和Show.all工作過。

所以我有兩個關於這個問題的主要問題。

1)我只是誤會了一些東西或把它放在錯誤的地方? 2)如何訪問節目名稱?我知道在其他使用has_one我只是使用該實體的名稱是否與has_many一樣工作

任何幫助表示讚賞。

+0

爲什麼你需要顯示的名字從展會分開?我的意思是,每個節目的名字都是正確的?或者這是爲了趕上多季節演出? – corroded 2011-02-11 02:38:10

回答

1

您翻轉了belongs_to和has_many並需要額外的下劃線。試試這個:

class ShowName < ActiveRecord::Base 
    belongs_to :show 
end 

class Show < ActiveRecord::Base 
    has_many :show_names 
end 

現在...

show = Show.first 
show.show_names => ["First name for first show", "Second name for second show"]