ohh*_*hho 4 ruby ruby-on-rails
将params[:date]字段转换为Date对象的最优雅方法是什么?
"date"=>{"day"=>"13", "year"=>"2012", "month"=>"4"}
Run Code Online (Sandbox Code Playgroud)
目前,我在以下代码中有以下代码controller:
@date = Date.current
if params[:date]
yy = mm = dd = 0
yy = params[:date][:year].to_i if params[:date][:year]
mm = params[:date][:month].to_i if params[:date][:month]
dd = params[:date][:day].to_i if params[:date][:day]
@date = Date::civil(yy, mm, dd) if Date::valid_date?(yy, mm, dd)
end
Run Code Online (Sandbox Code Playgroud)
并且里面view的form_tag:
<%= select_date(@date, :order => [:year, :month, :day], :prefix => 'date') %>
Run Code Online (Sandbox Code Playgroud)
它将返回有效的日期或时间对象.试试:
@date = Date.parse("#{params[:date]['day']}-#{params[:date]['month']}-#{params[:date]['year']}") if params[:date]
OR
@date = Time.parse("#{params[:date]['day']}-#{params[:date]['month']}-#{params[:date]['year']}") if params[:date]
@date ||= Date.current
Run Code Online (Sandbox Code Playgroud)