【发布时间】:2017-05-17 07:24:18
【问题描述】:
我正在使用一个表格实现一个活动供稿,该表格具有
与用户的两种不同关联。
1. 称为通知用户的多态关联,因为用户可以成为事件的目标,例如用户关注另一个用户
2. 与作为活动接收者的用户的 belongs_to 关联,并将在他们的提要中看到它。
你如何区分这两种不同的 has_many 活动关联?
当我调用 user.activities 时,它确实使用了我想要的关联,即 user_id,但是,有没有办法明确地给它一个名字?
class CreateActivities < ActiveRecord::Migration[5.0]
def change
create_table :activities do |t|
t.references :user, foreign_key: true, index: true
t.references :notifiable, polymorphic: true, index: true
end
end
class User < ApplicationRecord
has_many :activities, as: :notifiable, dependent: :destroy
has_many :activities, foreign_key: "user_id"
end
class Activity < ApplicationRecord
belongs_to :notifiable, polymorphic: true
belongs_to :user
end
【问题讨论】:
标签: ruby-on-rails