簡體   English   中英

如何在ruby on rails中的factorybot的“回調”函數中訪問子類而不是父類?

[英]How can I access to a child class instead of parent class in a 'callback' function of factorybot in ruby on rails?

我在 ROR 中實施了 STI。 請看下面的代碼:

class Category < ApplicationRecord
end

class CourseCategory < Category
  has_many :courses
end

我使用 FactoryBot 創建這樣的數據:

# category

FactoryBot.define do
  factory :category do
    name {"Ruby on Rails"}
  end
end

# course_category

FactoryBot.define do
  factory :course_category, parent: :category, class: 'Category' do
    trait :with_course do
      after(:create) do |course_category| # my problem is here
      create :course, :with_steps, course_category: course_category
    end
  end
end

# course

FactoryBot.define do
  factory :course do
     course_category
  end
end

當我運行FactoryBot.create(:course_category, :with_course) ,進入trait :with_course ,我應該有CourseCategory類,但我收到Category

我可以訪問父類而不是子類到 FactoryBot 的回調中嗎?

您的工廠正在將:course_category為錯誤的類。

這條線需要改變...

factory :course_category, parent: :category, class: 'Category' do

進入...

factory :course_category, parent: :category, class: 'CourseCategory' do

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM