【问题标题】:How do I access a nested model from view?如何从视图访问嵌套模型?
【发布时间】:2008-10-17 00:18:05
【问题描述】:

我的页面上有这样的下拉菜单:

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

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

【问题讨论】:

  • 你不总是会得到一个下拉菜单,因为这一集只能有一个节目吗?我错过了什么?
  • 此下拉菜单用于将情节分配给轨道。 A Track has_many Episodes。显示 has_many Episodes。

标签: ruby-on-rails ruby


【解决方案1】:

一种方法是在您的 Episode 类中创建一个名为 show_name 的方法,如下所示:

def show_name
  show.name
end

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

【讨论】:

    【解决方案2】:

    我不知道这是否可行,但您尝试过episode.show.name 吗?

    【讨论】:

      【解决方案3】:

      您可以使用#select 而不是#collection_select。您需要做更多的工作来构造值/文本对,但这还不错。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-10
        • 1970-01-01
        • 1970-01-01
        • 2018-06-24
        • 1970-01-01
        • 2019-10-03
        • 1970-01-01
        相关资源
        最近更新 更多