在 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
命令创建模型,并且一切顺利。
我试过了
- 删除 table 并重新创建它。
- 正在删除整个数据库并重新迁移它。
- 尝试了各种不同的大写字母(我知道很笨但是嘿)
现在我在某处读到,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
我正在尝试使用以下命令为 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
命令创建模型,并且一切顺利。
我试过了
- 删除 table 并重新创建它。
- 正在删除整个数据库并重新迁移它。
- 尝试了各种不同的大写字母(我知道很笨但是嘿)
现在我在某处读到,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