Rails不产生夹具created_at(Rails doesn't generate cr

2019-09-03 04:24发布

我有“question_id”,“ELAPSED_TIME”,“allowed_time”和“身份”为字段和接收包含JSON的问题,并将其保存控制器命名报表模型的问题。 (“question_id”不涉及任何我的机型)

到目前为止,没有任何问题。 直到我尝试运行一些测试。 我已经在Rails正在试图加载我的问题的夹具的错误: ActiveRecord::StatementInvalid: SQLite3::ConstraintException: questions.created_at may not be NULL: INSERT INTO "questions

这里是我的灯具:

one:
  id: 1
  question_id: MyString
  app: MyString
  guid: 1
  status: 1
  elapsed_time: 1
  allowed_time: 1

和我的模型:

class CreateQuestions < ActiveRecord::Migration
  def change
    create_table :questions do |t|
      t.string :app
      t.integer :guid
      t.string :question_id
      t.integer :elapsed_time
      t.integer :allowed_time
      t.datetime :happened_at
      t.integer :status

      t.timestamps
    end
  end
end

任何的想法 ?

Answer 1:

正如上文https://stackoverflow.com/a/4350202/978525您可以添加类似以下内容到你的夹具对象:

objectA:
  foo: something
  created_at: <%= 5.day.ago.to_s(:db) %>
  updated_at: <%= 5.day.ago.to_s(:db) %>


Answer 2:

我的模型的名字是复数形式。 将其更改为单数和轨将产生时间戳。

见轨如何产生的时间戳: https://github.com/rails/rails/blob/master/activerecord/lib/active_record/fixtures.rb#L560



文章来源: Rails doesn't generate created_at for fixture