我正在学习铁轨,最近遇到了障碍。任何指导都表示赞赏。
我正在使用设备,我有一个: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
答案 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]哈希的一部分发送。
我希望这会有所帮助。