我认为我有这个表格:
<tr>
<td>Date</td>
<td>
<%= select_date(@min_date, { :order => [:day, :month, :year], start_year: @start_year, end_year: @end_year }, style: "width: auto;") %>
</td>
</tr>
<tr>
<td>Time</td>
<td>
<%= select_time(@min_date, {}, style: "width: auto;") %>
</td>
</tr>
我正在我的控制器中得到它:
unless params[:date].nil?
params[:event][:date] = DateTime.new(
params[:date][:year].to_i, params[:date][:month].to_i,
params[:date][:day].to_i, params[:date][:hour].to_i,
params[:date][:minute].to_i, 0
)
end
问题是输入这样的示例日期:
设置小时和分钟而不是日期:
(rdb:369) pp date
Sat, 09 Feb 2013 16:37:00 UTC +00:00
我不知道我错过了什么...我很感激任何帮助
答案 0 :(得分:0)
您不必在控制器中执行此操作。如果这是数据库中的日期时间字段,则rails将自动执行所有这些操作。从数据库中获取格式时可以更改格式。
答案 1 :(得分:0)
我已经明白了,在我的视图中在select_date和select_time助手中设置了prefix属性,就像这样。
<tr>
<td>Date</td>
<td>
<%= select_date(@min_date, { :prefix => "date", :order => [:day, :month, :year], start_year: @start_year, end_year: @end_year }, style: "width: auto;") %>
</td>
</tr>
<tr>
<td>Time</td>
<td>
<%= select_time(@min_date, { :prefix => "time" }, style: "width: auto;") %>
</td>
</tr>
建立日期,如下:
unless params[:date].nil?
params[:event][:date] = DateTime.new(
params[:date][:year].to_i, params[:date][:month].to_i,
params[:date][:day].to_i, params[:time][:hour].to_i,
params[:time][:minute].to_i, 0
)
end