1

ユーザーがイベント計画アプリで AddDate をクリックすると、以下に示すように行を追加して、ユーザーが日付、開始/終了時刻、および AM/PM を追加できるようにします。

しかし、ネストされた属性を使用するフォームでは、選択コントロールが設定したモデル フィールド (:start_time および :end_time) への参照を必要とするようです。ただし、開始時刻と終了時刻は、時間用と分用の 2 つの選択コントロールから作成されます。そのため、2 つの選択で選択された値がどのように組み合わされて開始時刻と終了時刻が形成されるかはわかりません。

スクリーンショット

<div class="user_event_inline_container margin_left_ten padding_right_gone">
  <%= f.label  :start_time, "Start", class: 'info_inline_control info_label five_margin_right' %>
  <%= f.select :start_time, options_for_select([['1',1],['2',2],['3',3],['4',4],['5',5],['6',6],['7',7],['8',8],['9',9],['10',10],['11',11],['12',12]]), class: (field_class(@user_event, :start_time) + 'info_inline_control') %>
  <%= f.select :start_time, options_for_select([['00',1],['15',2],['30',3],['45',4]]), class: (field_class(@user_event, :start_time) + 'info_inline_control') %>
  <%= f.select :start_am_pm, options_for_select([['am',1],['pm',2]]), class: (field_class(@user_event, :start_am_pm) + 'info_inline_control') %>
</div>

<div class="user_event_inline_container margin_left_ten padding_right_gone">
  <%= f.label  :end_time, "End", class: 'info_inline_control info_label five_margin_right' %>
  <%= f.select :end_time, options_for_select([['1',1],['2',2],['3',3],['4',4],['5',5],['6',6],['7',7],['8',8],['9',9],['10',10],['11',11],['12',12]]), class: (field_class(@user_event, :end_time) + 'info_inline_control') %>

  <%= f.select :end_time, options_for_select([['00',1],['15',2],['30',3],['45',4]]), class: (field_class(@user_event, :end_time) + 'info_inline_control') %>
  <%= f.select :end_am_pm, options_for_select([['am',1],['pm',2]]), class: (field_class(@user_event, :end_am_pm) + 'info_inline_control') %>
</div>
4

2 に答える 2

1

代わりに time_select を使用しないのはなぜですか?

于 2013-06-21T07:29:00.963 に答える
0

このようにすると、params[]値とを使用してコントローラーで手動でマージする必要がありますDate.parse()

f.time_select送信後に通常のフィールドとして機能する を使用することもできます。

これは役に立つかもしれません:データを `datetime_select` から DateTime オブジェクトに変換する Rails メソッドはどこにありますか?

個人的には、jQuery プラグインを使用して日付フィールドのカスタム インターフェイスを作成し、javascript を使用してすべてのフィールドを実際に送信される隠しフィールドにマージします。

于 2013-06-21T09:38:20.667 に答える