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

时间:2014-03-05 16:47:46

标签: ruby time ruby-on-rails-4

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

1 个答案:

答案 0 :(得分:0)

您应该将time_of_checkout列的类型更改为datetime而不仅仅是time。 从您的代码看,您似乎真的想在那里存储日期+时间,而不仅仅是Time.now的时间部分(返回完整的日期和时间,而不仅仅是时间)。当你保存记录AR转换(意味着这里:吃日期)时只有完整的日期时间,这就是你看到2000年的日期