Rails 5:将belongs_to关联与自定义名称添加到模型和迁移
Posted
技术标签:
【中文标题】Rails 5:将belongs_to关联与自定义名称添加到模型和迁移【英文标题】:Rails 5: Add belongs_to association with custom name to model, and migration 【发布时间】:2017-03-15 11:38:58 【问题描述】:我有一个User
模型和一个Question
模型。
我想将belongs_to :user
关联添加到Question
模型,但我希望将该关联称为author
。例如,我会调用question.author
而不是question.user
。
显然这需要两个步骤:
-
models/question.rb 中的关联
迁移(注意用户表和问题表都已经存在)
令人惊讶的是,在 Rails 5 中,我没有在不同的答案中找到执行此操作的单一常规方法。
我该怎么做?
【问题讨论】:
【参考方案1】:rails g migration add_user_to_questions user:references
rails db:migrate
然后在模型中:
class Question < ApplicationRecord # or ActiveRecord::Base
belongs_to :author, class_name: 'User', foreign_key: :user_id
end
【讨论】:
漂亮,谢谢!还有一个问题。为什么有时我们会使用bin/rails ...
、rails ...
和rake ...
?
@rigdonmr 抱歉,从 rails 5 开始,两者都应该是 rails
- 他们改变了它
它将在迁移文件中创建add_reference :questions, :user, foreign_key: true
。以上是关于Rails 5:将belongs_to关联与自定义名称添加到模型和迁移的主要内容,如果未能解决你的问题,请参考以下文章
Rails ActiveRecord - 获取与锁定的belongs_to关联
以编程方式获取 Rails 4 中的 belongs_to 关联的类