我的数据库迁移有什么问题?



>我试图创造一种我有能力创建一系列研究的情况。所以我有一张名为"系列"的表。每个系列都有一个名称。每个系列还has_many :parts .所以我有一张名为 Part 的表,它belongs_to :series.然后每个部分has_many :questions和我的问题表belongs_to :part.我必须将这些表中的每一个相互归因于彼此,以便我进行如下迁移设置:

 class CreateSeries < ActiveRecord::Migration
   def self.up
     create_table :series do |t|
       t.string :name

       t.timestamps
     end
   end
   def self.down
       drop_table :series
   end
 end

class CreateParts < ActiveRecord::Migration
  def self.up
    create_table :parts do |t|
       t.date :date
       t.string :book
       t.integer :series_id
       t.timestamps
  end
    add_index :parts, [:series_id, :created_at]
  end
  def self.down
    drop_table :parts
  end
end

  class CreateQuestions < ActiveRecord::Migration
     def self.up
         create_table :questions do |t|
            t.text :body
            t.integer :part_id
            t.timestamps
         end
            add_index :questions, [:part_id, :created_at]
      end
      def self.down
         drop_table :questions
      end
   end

所以我迁移了数据库并使用SQLite数据库浏览器,我的问题表有一个应该parts_id。我的零件表应该有一个series_id列,但它没有。 有人可以帮忙解决这个问题吗?谢谢。

我想知道为什么系列列不在您的数据库中。 好的,如果我可以调用它,请执行安全检查,请尝试再次运行模型生成器。这次像这样运行

rails g model part date:date book series:belongs_to,看看您是否遇到相同的问题。我希望这有所帮助。或者,您也可以使用控制台窗口进行检查,尝试使用随机序列 ID 创建新部件,并检查它是否存在复数问题。

打开应用程序控制台rails c并键入 Part

您应该看到属性series_id

如果这样做,解决方案就是重新启动服务器。

最新更新