【发布时间】:2016-04-11 10:10:54
【问题描述】:
所以我有一个包含年份开始和结束日期的编辑表单。我想将 db 存储的值显示为默认日期。
我试过了
<%= f.input :year_start_date, :label => 'Year Start Date', :as => :date_select, :include_blank => false,
:input_html => { :id => 'y_start_date'}, prompt: { day: year_start_date.day, month: Date::MONTHNAMES[year_start_date.month], year: year_start_date.year}, data: year_start_date %>
所以它很好,并开始显示 db 存储的值。
但问题是当只更改月份时,参数将是
"year_start_date(1i)" => "", "year_start_date(2i)" => "3", "year_start_date(3i)" => ""
并且在控制器中正在做
[ school_params['year_start_date(1i)'], school_params['year_start_date(2i)'], school_params['year_start_date(3i)'] ].join('-').to_date
由于它包含空字符串,因此会引发无效日期错误。
当没有选择任何内容时,我想要默认值(在本例中为日期和年份)。如何做到这一点?
编辑 1:
参数
{
"utf8" => "✓",
"_method" => "patch",
"authenticity_token" => "abcffdgfdgfgfgf==",
"school" => {
"name" => "Test School",
"board_id" => "1",
"board_registration_number" => "",
"subdomain" => "testschool",
"email" => "",
"website" => "",
"address" => "NA",
"city" => "NA",
"pincode" => "",
"country_id" => "1",
"country_state" => "Tamil Nadu",
"phone" => "NA",
"inc_year" => "",
"handler_id" => "14451",
"year_start_date(1i)" => "",
"year_start_date(2i)" => "1",
"year_start_date(3i)" => "",
"year_end_date(1i)" => "",
"year_end_date(2i)" => "",
"year_end_date(3i)" => ""
},
"button" => "",
"controller" => "sat/schools",
"action" => "update",
"id" => "2"
}
【问题讨论】:
-
这不是答案,这是一个建议:使用
datepickerjs 插件。 -
转换成日期格式
-
@uzaif 正在使用 .to_date 转换为 date_format。即使我尝试使用 Date.new( school_params['year_start_date(1i)'].to_i, school_params['year_start_date(2i)'].to_i, school_params['year_start_date(3i)'].to_i ) 仍然得到同样的错误.
-
您在表单提交时是否使用 raise params.inspect 签入控制器,您得到了什么日期格式?
-
你能检查你的表单对象并在这里分享检查吗?
标签: ruby-on-rails activeadmin formtastic