我发现的所有参考文献都向我展示了如何在表创建上做到这一点,或者是针对较早版本的Rails。理想情况下,我希望在问题表中命名为" furety_id",以将其与其他用户区分开来,这些用户可能会在以后留下评论或答案。
class Question < ApplicationRecord
belongs_to :user
end
class User < ApplicationRecord
has_many :questions
end
您可以通过rails generate migration RenameUserFkOnQuestion
在终端中创建一个新的空迁移文件。打开它并建立您的迁移。如果您不确定某物的名称,这是一个方便的指南。
def change
change_table :questions do |t|
t.rename :user_id, :author_id
end
end
运行迁移并前往您的模型。您需要这样更新您的关系:
class Question
belongs_to :author, class_name: 'User'
end
class User
has_many :questions, inverse_of: :author
end
那么你应该很好。