0

日時を選択するために、自分のサイトで jquery datetimepicker プラグインを使用しています。フォームで、送信時にこれを投稿する会議フォームの start_at と end_at 時刻 (どちらも datetimepicker を使用) を変更します。

Parameters: {"utf8"=>"✓", "authenticity_token"=>"ugju0DDRlcMkg5u2FtTDj8upZNV16vXgd7RLqzgNmLE=", "meeting"=>{"organizer_id"=>"2", "state"=>"draft", "title"=>"testing endtime", "message"=>"wtf!", "start_at"=>"Thu, Feb 07, 03:00PM", "end_at"=>"Thu, Feb 7, 4:00PM",...

明らかに、start_at と end_at の両方が渡されています。奇妙なことに、start_at はデータベースで更新されますが、end_at は更新されません。どちらもフォーム上で変更されました。何か案は?

ログから..

UPDATE "meetings" SET "start_at" = '2013-02-07 23:00:00.000000', "updated_at" = '2013-02-06 06:44:16.922129' WHERE "meetings"."id" = 6

私のdatetimepicker設定..

  $('.date_time_select').live('click', function() {
    $(this).datetimepicker({
      ampm: true,
      dateFormat: "D, M d,",
      timeFormat: "h:mmTT",
      minDate: 0
    }).focus();
  });

私のコントローラー..

def update
  @meeting = current_user.meetings.find(params[:id])
  respond_to do |format|
    if @meeting.update_attributes(params[:meeting])
      format.html { redirect_to @meeting, :notice => "Meeting was successfully updated" }
      format.json { head :ok }
    end
  end
end

そしてスキーマ..

t.datetime "start_at"
t.datetime "end_at"
4

1 に答える 1

1

時間形式はすべて 1 つの形式にする必要があります。

start_atの時間形式は の時間形式と同じではないことに注意してくださいend_at

start_at=>Thu, Feb 07, 03:00PM

end_at=>Thu, Feb 7, 4:00PM

したがって、フォーム フィールドが次のような場合:

<%= f.text_field :end_at, :class => "ended-at-datetime" %>

application.js次のように明示的に設定できます。

$('.ended-at-datetime').datetimepicker({dateFormat: 'yy-mm-dd ', timeFormat: 'hh:mm:ss ', ampm: true});

また、同じですstart_at

私は間違っているかもしれませんが、それが分離されているのを見たことがありません。

フォーマットが正しくない場合、データベースに入らないことはわかっています。

于 2013-02-06T07:36:15.267 に答える