如何将 Rails 列表的每个元素放入表单中的 select_tag 中?

THp*_*ubs 0 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我有一个这样的 Rails 列表:

["Ananda College", "Nalanda College"] 
Run Code Online (Sandbox Code Playgroud)

它取自数据库。我选择了一栏并获取了其所有条目。现在我需要将此列表放入选择标签中!从选择框中选择每一项。我怎样才能做到这一点?

我尝试在 select_tag 内添加一个 every do 块,但它不起作用。

PS:列表是动态生成的

Dan*_*edy 5

您将需要使用options_for_select带有数组的表单助手。

一种常见的方法是在控制器中设置一个数组:

@colleges = College.uniq.pluck(:name)
Run Code Online (Sandbox Code Playgroud)

那么在你看来

<%= f.select :college, options_for_select(@college) %>
Run Code Online (Sandbox Code Playgroud)

查看options_for_select的文档以了解更多实现细节。

  • options_for_select 接受一个 `Array`,无论是硬类型还是动态生成都无关紧要。同样,我鼓励您熟悉 `select_tag`、`options_for_select` 和 `collection_select` 表单构建器方法。 (3认同)