Rails AR无法更新NULL datetime字段

时间:2013-03-20 16:55:54

标签: ruby-on-rails

我正在使用Rails 3.1。我有一个数据库列t.datetime“end_at”。如果我在创建对象时输入日期,那么我可以稍后更改值(更新)。但如果我把它留空(NULL),我发现我无法更新它。我确认该字段的名称和新值在params中。为什么呢?

 def update
   begin
     model = MyModel.find(params[:id])
     model.update_attributes!(params[:my_model])
   rescue ActiveRecord::RecordNotFound => e
      #something
   end
 end

1 个答案:

答案 0 :(得分:1)

你需要确保两件事情是真的:

  • 您的params[:end_at]必须包含nil或DateTime。通常,params不会作为日期时间进入。
  • 你的专栏不应该是TIMESTAMP(但可能不是这种情况)

还要研究多参数属性。