为public_activity rspec创建工厂

问题描述 投票:0回答:2

我正在使用public_activity gem,我有一种方法,当删除活动记录的可跟踪父项时,该记录将被删除。如下。

def destroy
    @comment = Comment.find(params[:id])
    if @comment.destroy
      @activity = PublicActivity::Activity.where(trackable_type: "Comment", trackable_id: @comment.id).first
        @activity.destroy
        respond_to do |format|
          format.js
        end
      end
  end

我尝试了许多不同的名称用于public_activity工厂,但是似乎没有任何作用,并返回trait not registered

我如何使用正确的名称设置public_activity工厂?

factories.rb

factory :activity do
   trackable_id :answer
   recipient_id :user
   owner_id :user
end
ruby-on-rails ruby ruby-on-rails-3 rspec factory-bot
2个回答
3
投票

盲目的答案,尝试这个:

factory :activity, class: 'PublicActivity::Activity' do
   trackable_id :answer
   recipient_id :user
   owner_id :user
end

0
投票

这适用于FactoryBot:

FactoryBot.define do
  factory :activity, class: 'PublicActivity::Activity' do
    association :trackable, factory: :answer
    association :recipient, factory: :user
    association :owner, factory: :user
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.