問題是rails/activerecord期望日期採用ISO格式'yyyy-mm-dd'。但是,這不是一個用戶友好的格式
在我看來,最簡單的解決方案是使用的日期選擇器alt屬性 - 基本上,顯示的日期格式,但提交另一份日期格式:
= f.text_field :your_date, id: "your_date", class: "hidden" // This is hidden
// This will show up
= text_field_tag "date[something_we_will_not_use]", f.object.your_date.strftime("%m/%d/%Y"),
class: "datepicker", 'data-alt-field' => '#your_date'
日期選擇器初始化
$('.datepicker').each(function() {
var alt_field = $(this).attr('data-alt-field');
$this.datepicker({
dateFormat: "mm/dd/yy",
prevText: '<i class="fa fa-chevron-left"></i>',
nextText: '<i class="fa fa-chevron-right"></i>',
altField: alt_field, // This is the tag where the date will be filled
altFormat: "yy/mm/dd" // This is how the date will be posted to your controller
});
})
我試圖通過MM/DD/YYYY但軌道將只接受DD/MM/YYYY –
例如,如果我進入軌道控制檯,然後輸入Date.parse( 「25/07/2011」)我收到了有效的答覆。但是如果我輸入Date.parse(「7/25/2011」),我會得到一個超出範圍錯誤的參數。 –
什麼版本的Rails?我只是嘗試3.0.7和'Date.parse(「7/25/2011」)'爲我返回一個有效的日期。你總是可以通過'dateFormat:「DD/MM/YYYY」'來修改datepickers格式(參見原始答案中的鏈接),並確保它始終創建一個在Rails中對你有效的日期格式。 –