FactoryGirl: доступ к данным ассоциации внутри черт - PullRequest
0 голосов
/ 05 января 2019

У меня есть модель платежей, модель счетов и таблица соединений invoice_payments для распределения платежей по счетам. Я создаю свою платежную фабрику следующим образом: -

FactoryGirl.define do
  factory :payment do
    customer
    user
    date Date.today
    amount 300
    discount 50
    mode "Cash"

    trait :with_invoice_payments do
      invoice = create(:invoice, customer: customer)
      invoice_payments_attributes do 
        attributes = []
        attributes << attributes_for(:invoice_payment, invoice_id: invoice.id)
      end
    end
  end
end

Теперь мой счет должен иметь тот же customer_id, что и создаваемый платеж. Вот почему я invoice = create(:invoice, customer: customer) надеялся, что это создаст счет с тем же клиентом, что и клиент этого платежа. Но это дает мне ошибку wrong number of arguments (given 3, expected 1..2) Как я могу выставить счет-фактуру, чтобы invoice.customer_id был связанным с этим платежом customer_id в самой характеристике?

1 Ответ

0 голосов
/ 05 января 2019

Нашли мое решение: -

FactoryGirl.define do
  factory :payment do
    customer
    user
    date Date.today
    amount 300
    discount 50
    mode "Cash"

    trait :with_invoice_payments do
      invoice_payments_attributes do 
        attributes = []
        attributes << attributes_for(:invoice_payment, invoice_id: create(:invoice, 
       customer: customer).id)
      end
    end
  end
end
...