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

Ruby on rails 如何从视图访问嵌套模型?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我的页面上有这样一个下拉列表: <p> <%= f.label :episode_id %><br /> <%= f.collection_select(:episode_id, @episodes, :id, :show) %> </p> 一集有一个id,属于一个有名字的节目。在下拉列表中,我想显示节目名称:show.name无法显示名称。如何做到这一点?一种方法是在您的插曲类中创建一个名为show\u

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

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



一集有一个id,
属于一个有名字的节目。在下拉列表中,我想显示节目名称<代码>:show.name
无法显示名称。如何做到这一点?

一种方法是在您的插曲类中创建一个名为
show\u name
的方法,如下所示:

def show_name
  show.name
end

传递到collection\u select的最后一个符号是要调用以获取选项文本的方法的名称。

一种方法是在您的插曲类中创建一个名为
show\u name
的方法,如下所示:

def show_name
  show.name
end

传递到集合\u select的最后一个符号是要调用以获取选项文本的方法的名称。

我不知道这是否可行,但您是否尝试过
插曲.show.name

我不知道这是否可行,但是你试过了吗?

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

f.select(:episode, :id, @episodes.map{|e| [e.show.name, e.id]})
您可以使用#select而不是#collection#u select。您需要做更多的工作来构建值/文本对,但这并不太糟糕

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

因为这一集只能有一个节目,你不总是会有一个条目的下拉列表吗?我遗漏了什么?这个下拉列表是为一首曲目分配一个片段。一首歌有很多集。这部剧有很多集。因为这集只能有一个节目,所以你不总是会有一个条目的下拉列表吗?我遗漏了什么?这个下拉列表是为一首曲目分配一个片段。一首歌有很多集。这个节目有很多集。