Rails:备份在db中有很多关联

时间:2013-11-03 18:20:14

标签: ruby-on-rails ruby model schema

我有User主键idBlog模型,主键id

我在has_many UserBlog belongs_to之间有一个Blog关联 到User

根据我的理解,我需要手动修改架构。

您能否提供有关如何执行此操作的见解?

2 个答案:

答案 0 :(得分:0)

# app/models/user.rb
class User < ActiveRecord::Base
  has_many :blogs
end

# app/models/blog.rb
class Blog < ActiveRecord::Base
  belongs_to :user
end

# db/migrate/20131103182551_add_user_id_to_blogs.rb
class AddUserIdToBlogs < ActiveRecord::Migration
  def change
    add_column :blogs, :user_id, :integer
  end
end

然后运行rake db:migrate。然后,您可以拨打user.blogsblog.user

答案 1 :(得分:0)

您必须执行上面已经说过的操作,然后才能更改数据库架构。您可以通过迁移更改数据库架构。您缺少的步骤是=&gt;您需要将user_id的外键添加到博客(通过迁移执行此操作)或添加属于关系

您可以使用'rails generate migration'命令创建迁移

rails generate migration add_column :blogs, :user_id, :integer

OR

rails generate migration change_table :blogs, :belongs_to, :user

迁移的结果应该将user_id的外键添加到博客中,或者它应该在用户和博客之间添加belongs_to关联。

在db / migrate文件夹中查找迁移结果

然后运行

rake db:migrate