在Rails 3.2.5中,我似乎无法弄清楚如何在datetime_select
params
个结果
例如,如果我有这个
<input type="text" name="poll[options][]">
<input type="text" name="poll[options][]">
然后params将包含params[:poll][:options]
,它是所有options
字段的数组。
这是我的datetime_select
:
datetime_select "scheduler", "options", {
add_month_numbers: true,
start_year: Date.today.year,
default: DateTime.now + 1.day,
datetime_separator: "<span>at</span>",
time_separator: "<span>:</span>",
leading_zeros: true
}
我想在表单中多次重复datetime_select
次。
模型/字段参数似乎不允许对"scheduler[]"
或"options[]"
之类的任何内容进行处理,以便收集datetime_select
个结果数组。
我该怎么做才能让许多日期时间对象出现在位于params[:scheduler][:options]
的数组中?
以下是我目前正在攻击它的方式:
datetime_select_tags = datetime_select "scheduler_selects", "", add_month_numbers:true, start_year:Date.today.year, default:DateTime.now + 1.day, datetime_separator:"<span>at</span>", time_separator:"<span>:</span>", leading_zeros:true
datetime_select_tags.gsub! 'name="scheduler_selects', 'name="scheduler[options][]'
这会产生像
这样的标签<select id="scheduler_selects__1i" name="scheduler[options][][(1i)]">
所以params
正确包含
"scheduler" => {
"options" => [
{"(1i)"=>"2012", "(2i)"=>"6", "(3i)"=>"13", "(4i)"=>"15", "(5i)"=>"24"},
{"(1i)"=>"2012", "(2i)"=>"6", "(3i)"=>"13", "(4i)"=>"15", "(5i)"=>"24"}
],
},
我可能会尝试将其包装在帮助程序中,以便还生成唯一的HTML id属性。但真的希望这不是长期的解决方案。
答案 0 :(得分:0)
使用反复试验,我发现这可行:
<%= form_tag :things do %>
<%= datetime_select("dates[a]", "b" ) %>
<%= datetime_select("dates[c]", "d" ) %>
<%= submit_tag 'save' %>
<% end %>
这为您提供了params[:dates]["a"]
和params[:dates]["b"]
等哈希值。我无法使内部索引与符号一起使用,我不知道如何使这些1i,2i,......后缀消失。