年的原因
当我设置其中一个变量时,我正在尝试在控制器中执行Time.now
。发生的情况是,当我显示它时,我得到的值为 2000-01-01 10:44:11 -0500
.当我在我的观点中<%= Time.now %>
时,我得到了正确的时间2014-03-05 11:39:17 -0500
。
这有什么原因吗?
这是我的控制器代码
def create_checkout_values
@checked_out = CheckedOut.new
@checked_out.bike_id=checked_out_params[:bike_id]
@checked_out.user=User.find_by_login(checked_out_params[:user_id])
@checked_out.time_of_checkout=Time.now
@bike = Bike.find_by_bike_id(@checked_out.bike_id)
if @bike != nil
@checked_out.problem = @bike.problem_description
@checked_out.fixed = @bike.need_repair
else
@checked_out.problem = ""
@checked_out.fixed = false
end
end
您应该将time_of_checkout列的类型更改为日期时间,而不仅仅是时间。从您的代码来看,您似乎真的想在那里存储日期 + 时间,而不仅仅是 Time.now 的时间部分(它返回完整的日期和时间,而不仅仅是时间)。当您保存记录时,AR仅将完整的日期时间转换为时间(此处的意思是:吃掉日期),这就是为什么您看到日期为2000