【发布时间】:2018-07-27 18:50:32
【问题描述】:
是否有 FactoryBot 方法或某种方式来获取工厂的可用特征?
例如:
FactoryBot.define do
factory :address, class: Address do
trait :in_california do
state 'CA'
end
trait :in_new_york do
state 'NY'
end
trait :in_florida do
state 'FL'
end
end
我希望能够以编程方式获取特征,例如 FactoryBot.get_traits (:address),它会返回为该工厂定义的特征数组,在本例中为
["in_california", "in_new_york", "in_florida"]
这样会更清楚吗?
【问题讨论】:
-
我进行了搜索,但找不到任何相关内容。我想知道是否有办法获得工厂的特征。我正在使用一个交互式工具(thor gem)来允许用户选择哪些特征给工厂,这就是我问这个的原因。 @jvillian
-
@jvillian 这不是特征。 IE。工厂':用户'可以有许多运行一些回调等的特征。即':user_with_payments' 可以做一些其他的事情。
attributes_for(:my_factory).keys将仅返回工厂 ':user' 中定义的属性哈希中的键 -
@jedi - 抱歉,我之前没有在我的工厂使用过特征。因此,我走上了完全错误的道路。我将删除我的答案和 cmets,因为我没有添加任何有用的内容。
-
@ibaralf 试试 FactoryBot.factory_by_name(:your_factory).defined_traits。也可以试试
FactoryBot.factories或FactoryBot.traits。你也可以看看 FactoryBot.configuration.factories[:your_factory].defined_traits -
FactoryBot.configuration.factories[:your_factory].defined_traits 。这似乎给了我一组特征。谢谢,在实际文档中没有看到这个,或者很难搜索。
标签: ruby-on-rails ruby factory-bot factory