Postgresql 在Rails中,如何创建一个迁移,将列/外键添加到与该表类型相同的表中?
我使用的是Rails 4.2.3。如何创建一个迁移,将列添加到与表类型相同的表中?此外,我如何添加外键(如果列为NULL也可以)?我试过这个Postgresql 在Rails中,如何创建一个迁移,将列/外键添加到与该表类型相同的表中?,postgresql,ruby-on-rails-4,foreign-keys,migration,Postgresql,Ruby On Rails 4,Foreign Keys,Migration,我使用的是Rails 4.2.3。如何创建一个迁移,将列添加到与表类型相同的表中?此外,我如何添加外键(如果列为NULL也可以)?我试过这个 class AddLinkedMyObjectToMyObjects < ActiveRecord::Migration def change add_reference :my_objects, :linked_my_object, type: :my_object, index: true, foreign_key: true e
class AddLinkedMyObjectToMyObjects < ActiveRecord::Migration
def change
add_reference :my_objects, :linked_my_object, type: :my_object, index: true, foreign_key: true
end
end
我认为您需要“手动”完成:
然后在MyObject
课程中说:
belongs_to :linked_my_object, class_name: MyObject
has_many :my_objects, foreign_key: :linked_my_object_id
我也做了类似的事情。
我会在articles表中添加一个引用用户的引用。这就是在articles表中创建一个名为user_id的索引
1:生成迁移的命令为:
rails generate migration add_user_id_to_articles user:references
class AddUserIdToArticles < ActiveRecord::Migration
def change
add_reference :articles, :user, index: true, foreign_key: true
end
end
2:迁移的结果是:
rails generate migration add_user_id_to_articles user:references
class AddUserIdToArticles < ActiveRecord::Migration
def change
add_reference :articles, :user, index: true, foreign_key: true
end
end
5:为了进行关联,我将添加到article.rb模型中
belongs_to :user
然后,在user.rb模型中
has_many :articles
has_many :articles