Rails - datetimepicker字段未在数据库中更新

时间:2013-02-06 07:05:06

标签: jquery ruby-on-rails datepicker datetimepicker

我在我的网站上使用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"

1 个答案:

答案 0 :(得分: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

我可能错了,但我没有看到它分开。

我知道如果格式不对,它将不会进入数据库。