FactoryGirl:访问特征内的关联数据
FactoryGirl: Accessing association data inside traits
我有一个付款模型、发票模型和一个用于将付款分配给发票的连接 table 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 在特征本身中?
找到我的解决方案:-
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
我有一个付款模型、发票模型和一个用于将付款分配给发票的连接 table 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 在特征本身中?
找到我的解决方案:-
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