0

我正在尝试创造一种我有能力进行一系列研究的情况。所以我有一个名为 Series 的表。每个系列都有一个名称。各编也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 DB 浏览器,我的 Questions 表有一个parts_id它应该的。我的零件表应该有一series_id列,但它没有。有人可以帮忙解决这个问题吗?谢谢。

4

2 回答 2

1

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

rails g model part date:date book series:belongs_to看看你是否遇到同样的问题。我希望这有帮助。或者您也可以检查您的控制台窗口尝试创建一个具有随机系列 ID 的新部分,并检查它是否存在复数问题。

于 2012-09-26T02:28:49.593 回答
0

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

您应该看到属性series_id

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

于 2012-09-26T02:36:58.880 回答