6

フォームの時間フィールドをオプションにしようとしています。私はこれをやっています:

<%= f.time_select :end_time, minute_step: 5, include_blank: true %>

ただし、送信されると、デフォルトの日付情報が time_select で自動的に送信されるため、params は次のようになります。

end_time(1i): '2000' end_time(2i): '1' end_time(3i): '1' end_time(4i): '' end_time(5i): ''

Rails はこれを実際の日付として解釈し、end_time を 00:00 に設定します。

オプションの時間フィールドを使用できるようにするための修正/トレーニングはありますか? コントローラーでこれを試しました:

if params[:event][:end_time] && params[:event][:end_time][:hour].blank? && params[:event][:end_time][:minute].blank?
  params[:event][:end_time] = nil
end

しかし、うまくいかないようです。

どんな助けでも大歓迎です!

4

2 に答える 2

2

あなたのパラメータは [:event][:end_time] ではありません。

[:event]['end_time(1i)']..[:event]['end_time(5i)'] それぞれ。

param 値を nil にしても役に立ちません。params ハッシュからそのキーを拒否する必要があります。例えば

params[:event].except('end_time(4i)', 'end_time(5i)') if params[:event]['end_time(4i)'].blank?

于 2012-06-01T14:06:32.860 に答える