我有这个date_select:
date_select("start_date_variable",
"start_date_attribute",
:start_year => 2014,
:end_year => 2016,
:order => [:day, :month, :year],
:use_short_month => true,
:add_month_numbers => true)
以params格式返回日期:
"start_date_variable" => {
"start_date_attribute(3i)"=>"14",
"start_date_attribute(2i)"=>"8",
"start_date_attribute(1i)"=>"2016"
}
我可以从中获得日期,月份和年份,但我想用以下内容搜索数据库:
@orders_from = @fulfillable_orders.where('created_at >= :start_date_par,
:start_date_par => params[:start_date_variable])
但是我不知道如何以ruby识别,阅读和返回记录的格式传递日期。
有任何线索可以解决这个问题的方法吗?
答案 0 :(得分:1)
试试这个:
date_hash = {
"start_date_attribute(3i)"=>"14",
"start_date_attribute(2i)"=>"8",
"start_date_attribute(1i)"=>"2016"
}
# will be: '2016-8-14'
date_string = date_hash.values.join('-').reverse
Date.parse(date_string)
修改强>
为了更严格地验证日期格式,您可以使用Date#strptime:
Date.strptime(date_string', '%Y-%m-%d')
答案 1 :(得分:1)
你可以尝试这个宝石multiparameter_attributes_handler。