【问题标题】:Using Model Attributes inside another Model's Factory - Rails在另一个模型的工厂中使用模型属性 - Rails
【发布时间】:2015-07-21 03:33:09
【问题描述】:

我有一个工厂叫Message,HABTM Users。我想在Message 工厂内模拟sender_id。 如果我这样做:

sender_id  { FactoryGirl.build(:user}.id }

我明白了:

FactoryGirl:DuplicateDefinitionError

如何引用另一个工厂的数据属性(在我的情况下为id)?

【问题讨论】:

    标签: ruby-on-rails tdd factory-bot faker


    【解决方案1】:

    即使它有效,你所做的只是build一个用户(这意味着没有保存到数据库)并尝试获取未保存记录的id,这一定是错误的方式。

    您可以做的就是创建对象sender 并使用association 方法将其与用户相关联。根据 FactoryGirl 的指南,您可以编写:

    factory :message do
      association :sender, factory: :user
    end
    

    FactoryGirl 有一组非常广泛的关联选项。这种方式允许您创建belongs_to 关联,但也可以使用回调after_create 创建has_many

    请查看associations part in Getting Started。它是关于工厂的非常丰富的知识来源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多