2015-09-26 86 views
0

我试图用以下命令为Ruby SQLite3数据库创建种子。在Ruby迁移中找不到表

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 
+0

,请问您对DB/schema.rb说?它是否包含提交内容? – trh

+0

是的,它包括在内 –

回答

0

在这里,你创建表submission

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

你的错误是由这个名字引起的。 Rails预计Submission模型的表格为submissions

您仍然可以使用这个名称,但应明确Submission模型声明:

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

修好了! –