Rails日期参数

时间:2012-06-04 20:52:33

标签: ruby-on-rails devise params

我正在学习铁轨,最近遇到了障碍。任何指导都表示赞赏。

我正在使用设备,我有一个:confirmed_at DateTime列作为受保护的属性。所以要从我的管理界面更新它,我超级控制器更新方法并添加:

      @user.update_attribute(:confirmed_at, params[:user][:confirmed_at])
      @user.update_attribute(:school_id, params[:user][:school_id])

:school_id正确更新,但:confirmed_at(日期时间)始终为零。我查看了params哈希,确定它没有:confirmed_at但是它有

      "confirmed_at(1i)"=>"2012", 
      "confirmed_at(2i)"=>"6", 
      "confirmed_at(3i)"=>"2", 
      "confirmed_at(4i)"=>"04",   
      "confirmed_at(5i)"=>"11"

Rails似乎没有将字段的参数转换为数据库的datetime对象。

**如何捕获这些值以正确更新我的:confirmed_at字段?

感谢任何帮助。

Rails 3.1, Ruby 1.9

2 个答案:

答案 0 :(得分:1)

我猜你正在使用datetime_select帮助器。

检查出来:Where is the Rails method that converts data from `datetime_select` into a DateTime object?

答案 1 :(得分:1)

试试这个:

@user.update_attribute(:confirmed_at, params[:confirmed_at])

date_select以其自己的参数发送,而不是作为params [:user]哈希的一部分发送。

我希望这会有所帮助。