我正在努力创造一种能够创造一系列研究的情境。所以我有一个名为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数据库浏览器,我的问题表有一个parts_id
。我的Parts表应该有一个series_id
列,但它没有。有人可以帮忙解决这个问题吗?谢谢。
答案 0 :(得分:1)
我想知道为什么系列列不在您的数据库中。如果我可以调用它,请尝试再次运行模型生成器。这次运行就像这样
rails g model part date:date book series:belongs_to
,看看你是否遇到同样的问题。我希望这有帮助。或者您也可以使用控制台窗口进行检查,尝试使用随机序列ID创建一个新部件,并检查它是否存在复数问题。
答案 1 :(得分:0)
打开应用程序控制台rails c
并输入Part
。
您应该看到属性series_id
。
如果这样做,解决方案就是重新启动服务器。