保存模型

时间:2016-12-31 20:24:49

标签: ruby-on-rails ruby-on-rails-4 activerecord rails-activerecord

我打电话保存时出现异常!在一个模型中。

  

/ contacts / import_spreadsheet / 1 / import中的SQLite3 :: ConstraintException   NOT NULL约束失败:contacts.created_at

在我的架构中,有问题的模型有:

  

t.datetime“created_at”,null:false
  t.datetime“updated_at”,null:false

我使用SQLite数据库浏览器检查了我的开发数据库,​​该表还包含created_at和updated_at列。

我尝试了很多东西,比如手动设置created_at属性。如果我这样做,Rails告诉我,该模型没有create_at方法。

My Contact类没有任何特殊内容,只有belongs_to和两个has_many关联。我试图评论那些问题,看看问题是否存在,但事实并非如此。

我已经尝试停止服务器,删除sqlite数据库并运行rake db:setup。

首先问题出在我用来导入联系人的方法中。但后来我意识到它发生在那里,它发生在那个模型的任何地方,即使是为我生成的简单的crud rails scaffold。

问题在于它是断断续续的。有时它会发生,有时它不会发生。当我开始写它不起作用,但重新启动几次后,没有改变任何东西,它现在正在工作,我不知道多久。

我注意到,当它不起作用时,生成的SQL没有created_at和updated_at属性。所以我认为问题出在rails本身,而不是我的数据库或类似的东西。

我也尝试更新rails,所以我现在正在运行rails 4.2.7.1。

其他人有类似的问题吗? created_at不是间歇性地工作?

- 更新

我想我找到了导致错误的行:

contact.public_send("#{params[i.to_s]}=", row_value)

我正在使用它,因为我收到的参数如“0”=>“name”所以我知道应该设置哪个对象属性。 也许这与ActiveRecord如何处理created_at和使用public_send有关?

0 个答案:

没有答案