4

フィールドとして「question_id」、「elapsed_time」、「allowed_time」、「status」を持つモデルの質問と、質問を含む JSON を受け取って保存する Reporting という名前のコントローラーがあります。(「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

何か案が ?

4

2 に答える 2

2

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) %>
于 2013-07-05T01:42:39.410 に答える
1

私のモデルの名前は複数形でした。単数形に変更すると、レールがタイムスタンプを生成します。

レールがタイムスタンプを生成する方法を参照してください: https://github.com/rails/rails/blob/master/activerecord/lib/active_record/fixtures.rb#L560

于 2013-05-15T08:45:07.910 に答える