2008-10-17 63 views
1

我有一個下拉像這樣我的網頁上:如何從視圖訪問嵌套模型?

<p> 
    <%= f.label :episode_id %><br /> 
    <%= f.collection_select(:episode_id, @episodes, :id, :show) %> 
</p> 

一個插曲都有一個id和belongs_to一場演出具有名字。在下拉列表中,我想顯示節目名稱。 :show.name無法顯示名稱。我該怎麼做呢?要做到這一點

+0

難道你不總是會得到一個條目下拉,因爲該節目只能有一個節目?我錯過了什麼? – 2008-10-17 11:05:49

+0

這個下拉菜單是將一個情節分配給一個音軌。跟蹤has_many集數。顯示has_many集數。 – Owen 2008-10-17 11:22:29

回答

1

一種方法是建立在你的情節類中的方法稱爲show_name像這樣:

def show_name 
    show.name 
end 

要傳遞到collection_select的最後一個符號是要調用的方法的名稱獲取選項文本。

0

我不知道這是否會奏效,但您是否嘗試過episode.show.name

0

您可以使用#select而不是#collection_select。你需要做更多的工作來構建價值/文本對,但這不是太糟糕。

f.select(:episode, :id, @episodes.map{|e| [e.show.name, e.id]})