Rails将Time Time DataType恢复为NULL

时间:2012-11-24 14:15:55

标签: ruby-on-rails ruby

用户可以在数据库中分配具有due_time_at数据类型的字段TIME。在他们更新一段时间之后,他们可能会改变主意并且不想要特定的时间。目前,当用户尝试将时间设置回NULL时,它只会将字段设置为数据库中的00:00。有没有办法让这个回到nil

我能够通过强制""发布帖子中的所有属性来获得所需的结果。即使您将时间设置为params[:something][:'due_time_at(1i)'],我看起来字段params[:something][:'due_time_at(2i)']params[:something][:'due_time_at(3i)']""仍然包含数据。如果有人有更好的方式让我知道。

if params[:something][:'due_time_at(4i)'] == ""
  params[:something][:'due_time_at(1i)'] = ""
  params[:something][:'due_time_at(2i)'] = ""
  params[:something][:'due_time_at(3i)'] = ""
  params[:something][:'due_time_at(4i)'] = ""
  params[:something][:'due_time_at(5i)'] = ""
end 

1 个答案:

答案 0 :(得分:1)

这应该有效:

obj.update_attributes({:due_time_at => nil})

如果要将params散列传递给update_attribute方法,则可以检查其值并将:due_time_at值设置为nil。