如何从视图访问嵌套模型?

时间:2008-10-17 00:18:05

标签: ruby-on-rails ruby

我的页面上有这样的下拉列表:

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

一集有一个id和belongs_to到一个有名字的节目。在下拉列表中,我想显示节目名称。 :show.name无法显示名称。我该怎么做?

3 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是在Episode类中创建一个名为show_name的方法,如下所示:

def show_name
  show.name
end

您传递给collection_select的最后一个符号是您要调用以获取选项文本的方法的名称。

答案 1 :(得分:0)

我不知道这是否有效,但您是否尝试episode.show.name

答案 2 :(得分:0)

您可以使用#select而不是#collection_select。你需要做更多的工作来构建值/文本对,但这并不算太糟糕。

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