2016-09-14 27 views
1

我有這個date_select: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]) 

但是我不知道如何通過日期在for紅寶石會識別,讀取和返回記錄。

任何線索如何可能或不同的方式?

回答

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) 

編輯:

對於日期格式,您可以使用日期#strptime的嚴格的驗證:

Date.strptime(date_string', '%Y-%m-%d')