1

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 属性も生成するために、おそらくこれをヘルパーでラップしようとします。ただし、これが長期的な解決策ではないことを本当に望んでいます。

4

1 に答える 1

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、... 接尾辞を削除する方法がわかりません。

于 2012-06-12T18:05:40.150 に答える