0

我的“事件”表有 2 个日期时间值来存储开始和结束日期。

他们曾经是这样的

.field
    = f.label t :event_start_date
    %br
    = f.datetime_select :start_date
  .field
    = f.label t :event_finish_date
    %br
    = f.datetime_select :finish_date

我使用了日期时间选择器插件,它在视觉上工作得很好。但是,由于字段从 datetime_select 更改为 text_field,因此在创建新事件时不会存储这些值。

这是它现在的样子:

.field
    = f.label t :event_start_date
    %br
    = f.text_field :start_date, :class=>"datetime_box", :size=>"17"
  .field
    = f.label t :event_finish_date
    %br
    = f.text_field :finish_date, :class=>"datetime_box", :size=>"17"

这是 js 以防万一有人需要它:

$(function() {
    $('.datetime_box').datetimepicker({
            minDate: new Date(),
            showOn: "button",
            buttonImage: "../images/pais_vasco_conciertos_teatro_musica_grupos.png",
            buttonImageOnly: true
    });
});

知道如何克服这个问题并存储这些值吗?

事件控制器

def create

    categories = params[:category_ids] or []
    @event = Event.new(params[:event].merge(:user_id => current_user.id, :category_ids => categories))

    respond_to do |format|
      if @event.save

        #Mailer to seek appoval
        format.html { redirect_to @event, notice: 'Event was successfully created.' }
        format.json { render json: @event, status: :created, location: @event }
      else
        format.html { render action: "new" }
        format.json { render json: @event.errors, status: :unprocessable_entity }
      end
    end
  end

该网站支持 4 种语言。此错误仅显示在英语下。所以,我想这与格式有关..

格式示例:西班牙语和法语(作品)

"start_date"=>"30/01/2013 16:39",
 "finish_date"=>"31/01/2013 16:39",

巴斯克语(作品)

"start_date"=>"2013/01/30 16:38",
 "finish_date"=>"2013/01/31 16:38",

英语(不工作)

我怎样才能使 MM/DD/YY 工作?再次感谢

"start_date"=>"01/30/2013 16:40",
 "finish_date"=>"01/31/2013 16:40",
4

1 回答 1

0

您需要确保作为字符串传递给控制器​​的日期可以由 ruby​​ 解析。一种方法是将日期和时间格式传递给 datetimepicker。试验什么格式适合你的需要,什么可以被 ruby​​ 解析。

尝试添加这些选项,看看是否能解决您的问题

$(elem).datetimepicker({
  dateFormat: 'M d, yy',
  timeFormat: 'hh:mm tt'
});
于 2013-01-30T15:35:04.127 回答