我正在使用一个表来实现一个Activity Feed 与用户的两种不同关联 1.一种称为用户可通知的多态关联,因为用户可以是事件的目标,例如用户跟随另一个用户 2.作为活动接收者的用户的belongs_to关联,并将在其Feed中看到它。
您如何区分两个不同的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
答案 0 :(得分:0)
是的,您可以提供自定义名称并提供类名,以便rails可以了解要查找的关联
has_many :some_random_name, class:"Activity", foreign_key: "user_id"