使用Ruby表单助手设置日期时间字段
问题描述:
我想使用ruby论坛助手设置日期时间字段。使用Ruby表单助手设置日期时间字段
<%= form_for @event do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<strong>Title</strong>
<div class="field">
<%= f.text_field :title %>
</div>
<strong>Description</strong>
<div class="field">
<%= f.text_area :description, :class => "comment" %>
</div>
<strong>Location</strong>
<div class="field">
<%= f.text_field :location %>
</div>
<strong>Time</strong>
<div class="field">
<%= select_datetime Date.today, :prefix => :start_date %>
</div>
<div class="actions">
<%= f.submit "Add Event" %>
</div>
<% end %>
在控制器我这样做: 类EventsController < ApplicationController的 高清指数 @event = Event.new 结束
def create
@event = current_user.events.build(params[:event])
if @event.save
redirect_to root_path, :flash => { :success => "#{@event.inspect}!" }
else
@feed_items = []
render 'pages/home'
end
end
end
但是日期时间不落......我是什么我做错了?
答
你需要处理你要在你的控制器是什么,比如:
def create
@event = current_user.events.build(params[:event])
datetime=DateTime.civil(params[:start_date][:year].to_i, params[:start_date][:month].to_i, params[:start_date][:day].to_i,
params[:start_date][:hours].to_i,params[:start_date][:minutes].to_i, params[:start_date][:seconds].to_i)
@event.datetime = datetime
if @event.save
redirect_to root_path, :flash => { :success => "#{@event.inspect}!" }
else
@feed_items = []
render 'pages/home'
end
end
答
这个问题是几乎一半十年的老,但只是在情况下,它可以帮助别人的未来,有创造一个更简单的方法具有日期时间属性的模型对象。
更换<%= select_datetime Date.today, :prefix => :start_date %>
与<%= f.datetime_select :datetime %>
,并确定在控制器中的创建操作如下。
def create
@event = current_user.events.build(params[:event])
if @event.save
redirect_to root_path, :flash => { :success => "#{@event.inspect}!" }
else
@feed_items = []
render 'pages/home'
end
end
我也希望能够插入小时和分钟。这只考虑了几天,几年和几个月。 – skline 2011-06-08 02:54:16
尝试更新回答:) – 2011-06-08 03:01:19