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によって解析できることを確認する必要があります。これを行う1つの方法は、日付と時刻の形式をdatetimepickerに渡すことです。ニーズに合った形式と、rubyで解析できる形式を試してください。

これらのオプションを追加してみて、問題が解決するかどうかを確認してください

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