【问题标题】:Rails - datetimepicker field not updating in databaseRails - datetimepicker 字段未在数据库中更新
【发布时间】:2013-02-06 07:05:05
【问题描述】:

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

我的日期时间选择器设置..

  $('.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"

【问题讨论】:

  • 如果你的请求有正确的参数,那不是日期选择器的错;它在你的控制器中。你能把那个贴出来吗?还有schema.rb的相关部分?
  • 遗憾的是,控制器中没有发生任何事情。添加了您要求的内容。
  • 您的会议模型中有什么?

标签: jquery ruby-on-rails datepicker datetimepicker


【解决方案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 也一样。

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

我知道如果格式不正确它不会进入数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2016-07-28
    • 1970-01-01
    • 2017-08-31
    相关资源
    最近更新 更多