使用select_date
返回一个具有year
、month
和day
属性的params[:my_date]
。如何轻松获取Date对象?我希望是像params[:my_date].to_date
这样的东西。
我也很乐意使用date_select
。
发布于 2012-11-28 22:08:54
使用date_select可以分别为日、月和年提供3个单独的键/值对。因此,您可以将它们作为参数传递到Date.new
中,以创建新的Date对象。
为Event
模型返回参数的示例date_select:
"event"=>
{"name"=>"Birthday",
"date(1i)"=>"2012",
"date(2i)"=>"11",
"date(3i)"=>"28"},
然后创建新的Date
对象:
event = params[:event]
date = Date.new event["date(1i)"].to_i, event["date(2i)"].to_i, event["date(3i)"].to_i
相反,您可能决定将此逻辑包装在一个方法中:
def flatten_date_array hash
%w(1 2 3).map { |e| hash["date(#{e}i)"].to_i }
end
然后把它叫做date = Date.new *flatten_date_array params[:event]
。但这并不是真正属于控制器的逻辑,所以您可以决定将其转移到其他地方。您甚至可以将其扩展到Date
类,并将其称为date = Date.new_from_hash params[:event]
。
发布于 2013-12-21 04:14:54
这是另一个:
# view
<%= date_select('event', 'date') %>
# controller
date = Date.civil(*params[:event].sort.map(&:last).map(&:to_i))
可在http://kevinlochner.com/use-rails-dateselect-without-an-activerecord找到
发布于 2014-07-02 01:02:48
这是另一个
Date.civil(params[:event]["date(1i)"].to_i,params[:event]["date(2i)"].to_i,params[:event]["date(3i)"].to_i)
https://stackoverflow.com/questions/13605598
复制相似问题