-1
有時attributes_for
策略返回不必要的屬性,換句話說,如果我們需要幾個屬性是什麼,而不是返回所有的人:FactoryGirl:忽略屬性,而不需要創建額外的工廠
FactoryGirl.define do
factory :user do
name { FFaker::Name.name }
nickname { FFaker::Name.suffix }
email { FFaker::Internet.email }
factory :special_user do
provider 'email'
confirmed_at Time.now.strftime('%F %T')
end
trait :confirmation do
current_password 'secret098'
password 'secret567'
end
trait :valid do
password_confirmation 'secret567'
end
trait :invalid do
password_confirmation 'secret568'
end
end
end
有必要使用具有特徵的工廠,但是是否有可能僅返回current_password
,password
和password_confirmation
? attributes_for()
不適用於特徵。或者也許有另一種方式來做到這一點?
我不完全明白你想要做什麼或什麼不工作。就你上面的例子來說,你能給你的例子'attributes_for'調用,它返回什麼,以及你希望它返回什麼?一般情況下,traits屬性不會很好,不是嗎?使用有意義的模型名稱/屬性而不是foo/bar/baz(正如您開始使用user/special_user一樣)也可以使示例更易於理解。 – jrochkind
聽起來好像你想要從他們定義的工廠中分別訪問特徵,而這不是他們設計的工作方式。 – sevenseacat
@sevenseacat我知道,但也許有其他方法來過濾atrributes不知何故? – DreamWalker