rails date input仅接受第1天到第12天

时间:2014-02-26 02:49:47

标签: ruby-on-rails ruby forms date date-format

我的Rails表单有:

f.text_field :content_date, id: 'datepicker', size: 10

这在几个月的前12天都可以正常工作。 但是在第13-31天,没有保存日期,任何现有日期都将被删除。

我尝试添加:

:value => @link.content_date.strftime("%m/%d/%Y") 

,如

= f.text_field :content_date, id: 'datepicker', size: 10#, :value => @link.content    _date.strftime("%m/%d/%Y")

但它没有帮助。

Params hash example:

Parameters: {
"utf8"=>"✓", 
"authenticity_token"=>"90RFyJDhQYeqMsUgJXSSWT/1Mrc3Mz27+cVbMg/dEfY=", 
"link"=>{"url_address"=>"http://www.test.com", 
"alt_text"=>"t22", 
"version_number"=>"", 
"group_id"=>"34", 
"content_date"=>"11/30/2014"}, 
"commit"=>"Save", 
"id"=>"360"}

我也尝试添加

Default format for displaying dates and times
Date::DATE_FORMATS[:default] = "%m/%d/%Y"
Time::DATE_FORMATS[:default] = "%m/%d/%Y"

config/initializers/time_format.rb,但这只是保存时格式之间的日期周期,例如是04/02/2012,然后显示02/04/2012,然后显示04/02/2012等。

将它们设置为

Default format for displaying dates and times
Date::DATE_FORMATS[:default] = "%m/%d/%Y"
Time::DATE_FORMATS[:default] = "%m/%d/%Y"

不会这样做,但仍然只适用于本月的前12天。 附加的js日期选择器显示正确的日期,例如02/12是2月12日。

控制器:

  def update
    @link = Link.find(params[:id])

    respond_to do |format|
      if @link.update_attributes(params[:link])
        flash[:notice] = 'Link was successfully updated.'
        format.html { redirect_to(@link.group) }
      else
        @groups = Group.find(:all)
        format.html { render :action => "edit" }
      end
    end 
  end 

1 个答案:

答案 0 :(得分:1)

尝试将gem 'american_date'添加到您的gemfile中。我必须在最近的一个项目中这样做。