在 Ruby 迁移中找不到 table

Cannot find table in Ruby Migration

我正在尝试使用以下命令为 Ruby SQLite3 数据库播种。

SubmissionPool.create(
[ { submission_pool_id: "5769bdf9-ac24-4b4c-bc35-6062de526285", submission_pool_description: "images", created_at: Time.new , updated_at: Time.new  }
])

Submission.create(
[ { submission_ID: "ff336040-d5e7-4c80-a0b8-53d2204bd027", submission_title: "TestSubmission",  submission_description: "TestSubmission",
  submission_file: "http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg", created_by: "00000000-0000-0000-0000-000000000000", created_at: Time.new , updated_at: Time.new  }
])

而且它一直给我错误提示 table 未找到提交。到目前为止,我一直在使用 rails generate model 命令创建模型,并且一切顺利。

我试过了

现在我在某处读到,sqlite 3 对 table 名称中的复数不太好。你们谁能给我一个正确方向的指示。我将在下面附上我的迁移代码和模型代码。

submission.rb

class Submission < ActiveRecord::Base
end

迁移

class CreateSubmissions < ActiveRecord::Migration
  def change
    create_table :submission, :id => false do |t|
      t.uuid :submission_ID, :primary_key => true, null: false
      t.string :submission_title, null: false
      t.text :submission_description, null: false
      t.string :submission_file, null: false
      t.datetime :created_on, null: false
      t.uuid :created_by, null: false

       t.timestamps null: false
    end
  end
end

这里创建tablesubmission:

create_table :submission, :id => false do |t|
  ...
end

您的错误是由这个名字引起的。 Rails 期望 Submission 模型的 table 为 submissions

您仍然可以使用此名称,但应在 Submission 模型中明确声明:

class Submission < ActiveRecord::Base
  self.table_name :submission
end