Rails 问题与 Time.now 在视图与控制器中



当我设置其中一个变量时,我正在尝试在控制器中执行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

年的原因

最新更新