【发布时间】:2013-11-14 09:32:43
【问题描述】:
我有 User 主键 id 和 Blog 主键 id 模型。
我在User 中与Blog 有一个has_many 关联,在Blog 中有一个belongs_to
到User。
据我了解,我需要手动修改架构。
您能否提供有关如何执行此操作的见解?
【问题讨论】:
标签: ruby-on-rails ruby model schema
我有 User 主键 id 和 Blog 主键 id 模型。
我在User 中与Blog 有一个has_many 关联,在Blog 中有一个belongs_to
到User。
据我了解,我需要手动修改架构。
您能否提供有关如何执行此操作的见解?
【问题讨论】:
标签: ruby-on-rails ruby model schema
# 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.blogs 或blog.user。
【讨论】:
您必须按照上面所说的进行操作,然后还要更改数据库架构。您通过迁移更改数据库架构。您缺少的步骤是=>您需要将 user_id 的外键添加到博客(您通过迁移来完成)或添加属于关系
您可以使用“rails generate migration”命令创建迁移
rails generate migration add_column :blogs, :user_id, :integer
或
rails generate migration change_table :blogs, :belongs_to, :user
迁移的结果应该是把user_id的外键添加到blogs中,或者应该在user和blogs之间添加belongs_to关联。
在 db/migrate 文件夹中查找迁移结果
然后运行
rake db:migrate
【讨论】: