在Ruby Migration中找不到表

时间:2015-09-26 20:46:02

标签: ruby-on-rails sqlite rails-migrations seeding

我尝试使用以下命令为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  }
])

它一直给我一个错误,即没有找到表提交。到目前为止,我一直使用rails generate model命令创建模型,并且已经完成了所有工作。

我试过

  • 删除表并重新创建它。
  • 删除整个数据库并重新迁移。
  • 尝试了各种不同的大写字母(我知道愚蠢但是嘿)

现在我已经读过某个地方sqlite 3并不是表名中的复数形式。你们中的任何人都可以给我一个指向正确方向的指针。我将在下面附上我的迁移代码和模型代码。

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

1 个答案:

答案 0 :(得分:0)

在这里创建表submission

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

您的错误是由此名称引起的。 Rails希望Submission模型的表格为submissions

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

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