Rails日期输入格式

时间:2014-04-18 11:25:10

标签: jquery ruby-on-rails date

我正在尝试为某个日期字段创建输入表单(使用jquery-ui选择日期) 我正在使用rails 4,它总是考虑这个dd/mm/yyyy,同时我的输入是mm/dd/yyyy 我在config / locales / en.yml中更改了如下:

en:
  hello: "Hello world"
  date:
    order:
      - month
      - day
      - year

但结果仍然相同。

我的调试

(rdb:1) @booking
Booking id: nil, **booking_date: nil**, guest_name: "as",

(rdb:1) booking_params
{"booking_date"=>"04/24/2014", "guest_name"=>"as",

这可能是初学者的问题,谢谢你的帮助

供参考,这是我的控制器

def create
    @booking = Booking.new(booking_params)
    debugger
    if @booking.save
      flash[:success] = "data saved succesfully"
      redirect_to bookings_path 
    else
      render 'bookings/booking_form'
    end
  end

这是视图

<%= form_for @booking do |f| %>
    <%= render 'common/form_errors', object: @booking %>
  <p>
     <%= f.label :booking_date, "Booking Date" %>
     <%= f.text_field :booking_date, :class => :datepicker  %>
  </p>

2 个答案:

答案 0 :(得分:0)

您可以通过声明一种方法来执行此操作,例如update_date以params作为参数,并在执行保存或更新之前在您的操作中调用此方法,请查看此示例

def update_date(params)
  date_string = params[:booking][:booking_date].split("-")
  params[:booking][:booking_date] = date_string[1]+"-"+date_string[0]+"-"+date_string[2]  
end

您也可以将它放在before_filter中,因此您可以按照自己的意愿实施,我已经为您提供了逻辑。

答案 1 :(得分:0)

在选择值本身时,只需更改date format datepicker

检查:http://jsfiddle.net/d6mSA/187/

<script>
    //make sure you have referenced `JQuery` and `JQuery-UI` resources before the code below
    $( document ).ready(function() {
        $('.datepicker').datepicker({ dateFormat: 'dd-mm-yy' })
    });

</script>

希望有所帮助:)