我有一个
User
模型和一个 Question
模型。
我想向
belongs_to :user
模型添加 Question
关联,但我希望该关联被称为 author
。例如,我会调用 question.author
而不是 question.user
。
显然这需要两个步骤:
令人惊讶的是,我没有在 Rails 5 的不同答案中找到执行此操作的单一常规方法。
我该怎么做?
rails g migration add_user_to_questions user:references
rails db:migrate
理想情况下,您还可以打开生成的迁移并通过添加所需的选项来更改
add_reference
。更“完整”的 add_reference 示例:
add_references(
:user,
null: false,
index: {name: "custom_index_name_if_needed"},
type: :integer,
foreign_key: {
to_table: "public.my_users_table",
on_delete: :cascade # ensure the row is deleted when user is deleted from DB
}
)
然后在模型中:
class Question < ApplicationRecord # or ActiveRecord::Base
belongs_to :author, class_name: 'User', foreign_key: :user_id
end