ruby-on-rails – 如何在FactoryGirl中创建一个关联,并使用另一
发布时间:2020-12-16 21:00:17 所属栏目:百科 来源:网络整理
导读:是否可以使用关联作为特征中另一个关联的值? 让我描述一个(简化的)例子.我有3个型号 用户 论坛(belongs_to:论坛) 线程(belongs_to:论坛,belongs_to:用户) 请注意,Thread包含一个user_id,它不属于User通过论坛(目前,我不能改变这样的约束). 我想知道的是,
是否可以使用关联作为特征中另一个关联的值?
让我描述一个(简化的)例子.我有3个型号 >用户 请注意,Thread包含一个user_id,它不属于User通过论坛(目前,我不能改变这样的约束). 我想知道的是,是否有办法定义像这样的特征 FactoryGirl.define do factory :thread do trait :with_forum do association :user # Lazy-evaluate the value of user to the previously created factory # THIS IS THE KEY POINT: I want 'user' to be the factory created at the previous line association :forum,user: user end end end 该特性应该做的是创建一个用户并将其与线程相关联. 主要有两个原因: >与论坛关联的用户与该主题相同 任何的想法?我试图使用延迟评估,但无法将其与关联一起使用. 解决方法
做相反的事情并将线程的用户设置为与论坛相同是否有意义?论坛工厂是否创建了用户?
FactoryGirl.define do factory :thread do trait :with_forum do forum user { forum.user } end end end 如果你真的想以另一种方式做到这一点,你肯定可以使用一个惰性属性: FactoryGirl.define do factory :thread do trait :with_forum do user forum { create(:forum,user: user) } end end end 不利于用于构建线程的策略,它将始终创建一个论坛. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |