>我试图创造一种我有能力创建一系列研究的情况。所以我有一张名为"系列"的表。每个系列都有一个名称。每个系列还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
。
如果这样做,解决方案就是重新启动服务器。