Ruby on rails Rails日期参数

Ruby on rails Rails日期参数,ruby-on-rails,devise,params,Ruby On Rails,Devise,Params,我正在学习rails,最近遇到了一个路障。感谢您的指导 我正在使用设备,并且在DateTime列中有一个:confirmed\u作为受保护的属性。因此,要从我的管理界面更新它,我使用控制器更新方法并添加: @user.update_attribute(:confirmed_at, params[:user][:confirmed_at]) @user.update_attribute(:school_id, params[:user][:school_id]) :sch

我正在学习rails,最近遇到了一个路障。感谢您的指导

我正在使用设备,并且在DateTime列中有一个
:confirmed\u作为受保护的属性。因此,要从我的管理界面更新它,我使用控制器更新方法并添加:

      @user.update_attribute(:confirmed_at, params[:user][:confirmed_at])
      @user.update_attribute(:school_id, params[:user][:school_id])
:school\u id
得到正确更新,但
:confirm\u at
(日期时间)始终为零。我查看了params散列,确信它没有
:confirmative\u at
,但它有

      "confirmed_at(1i)"=>"2012", 
      "confirmed_at(2i)"=>"6", 
      "confirmed_at(3i)"=>"2", 
      "confirmed_at(4i)"=>"04",   
      "confirmed_at(5i)"=>"11"
Rails似乎没有将字段的参数转换为数据库的datetime对象

**如何捕获这些值以正确更新我在
字段中的
:confirm\u

感谢您的帮助

第3.1条,
Ruby 1.9

我猜您使用的是
datetime\u select
helper

检查此项:

尝试以下操作:

@user.update_attribute(:confirmed_at, params[:confirmed_at])
选择的日期以其自己的参数发送,而不是作为参数[:user]散列的一部分发送


我希望这能有所帮助。

没有做到这一点。到目前为止,一个丑陋的解决方案是将fiels添加为文本字段,然后将日期键入as 12/12/12。谢谢你,Anil。我认为这是可行的,因为这很有意义,在阅读你的评论之前我没有尝试过。@Yuri那么你的最终解决方案是什么呢?我添加了一个字段:string,然后以人工格式(12/12/12…)添加值,它可以很好地进行转换和保存。我不喜欢它,但因为是应用程序管理界面,只有我真正有权访问它是好的。也许我应该把这个写进一个答案里谢谢你Alexey。不过,我不确定手动处理转换是否合适。如果我错了,请纠正我,但这似乎建议我应该单独手动获取参数?