12

我有一个这样的数组:

['New York', 'Los Angeles']

我希望能够以如下形式生成具有这些值的选择/选项:

<%= form_tag filter_city_path, :method=> get do %>
  <%= select_tag "city", @list_of_cities %>
<% end %>

但这不起作用。如您所见,我想在 url中将选择作为城市传递。

4

3 回答 3

18

您需要使用 options_for_select 帮助器,例如

<%= select_tag "city", options_for_select([['New York' ,'New york'], ['Los Angeles', 'Los Angeles']]) %>
于 2012-04-24T01:45:14.510 回答
6

我的方法是将数组构建为模型中的常量,强制确认常量中列出的选项,然后从视图中调用它

class Show < ApplicationRecord

  DAYS = [ "monday", "tuesday", "wednesday", "thursday","friday", "saturday","sunday"]

  validates :day, inclusion: DAYS

end

如果您希望在没有内容的情况下提交该字段的选项,您还必须在验证中调用 `allow_blank: true'。设置完成后,您可以调用常量来填充表单中的视图,如下所示:

<%= select_tag "day", options_for_select(Show::DAYS) %>

或者

<%= select_tag "day", options_for_select(Show::DAYS.sort) %>

如果你想要它预先排序(这对于一周中的几天没有意义......)

于 2017-08-16T22:16:59.233 回答
0

看起来您的数组没有足够的参数。请参阅本指南

选项通常需要以这种方式格式化:

[['Lisbon', 1], ['Madrid', 2], ...]

记下值1,2等。

于 2012-04-24T01:40:54.730 回答