2012-03-31 8 views
2

jquery_datepicker gemを使用して自分のフォームに日付を選択します。しかし、日付ピッカーは、次の形式でのparamを渡しますjQueryのRailsフォームで解析日が送信されます

{"appointment"=>{"starts_at"=>"04/07/2012"}, "commit"=>"Submit", "id"=>"915"}

しかし、Railsは日付のparamsは、次の形式でなければならないことが必要です。

"starts_at(1i)"=>"2012", "starts_at(2i)"=>"4", "starts_at(3i)"=>"7"

どのように私は私のstarts_atを解析しなければならないし、それを後者の形式で元に戻す?

なんらかの理由で、手作業で解析する必要がある理由は、4月7日ではなく(jQueryのdatepickerが表示されるので)レールが04/07/2012を7月04日と混乱させたからです。

答えて

1

あなたは、クライアント側で日付ピッカー文字列を形成しようとすることができます:

$("#starts_at").datepicker({ 
    onSelect: function(dateText, inst) { 
     dateText = $.datepicker.formatDate(
      'mm.dd.yy', 
      new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay) 
     ); 

     inst.input.val(dateText); 
    }, 
}); 
2

あなたは正しい値を取得するためにDate.parse(STR)メソッドを使用することができます。

dt = Date.parse(params[: starts_at]) 

eg: >> Date.parse('04/07/2012') 
=> Sat, 07 Apr 2012 
+2

これは私に '=> Wed、04 Jul 2012'を与えます。 – cbron

+0

@cbronあなたとNileshは異なるロケールを設定しています。それが理由。 –

関連する問題