Tôi muốn khô cạn sau khi tạo/xây dựng móc trong nhà máy của tôi:FactoryGirl DRY sau khi tạo/xây dựng móc
FactoryGirl.define do
factory :poll do
sequence :title do |n|
"MyPollTitle#{n}"
end
sequence :description do |n|
"MyPollDescription#{n}"
end
user
factory :poll_with_answers do
ignore do
answers_count 2
end
after(:build) do |poll, evaluator|
evaluator.answers_count.times do
poll.answers << build(:answer, poll: poll)
end
end
after(:create) do |poll, evaluator|
evaluator.answers_count.times do
poll.answers << create(:answer, poll: poll)
end
end
end
end
end
Vấn đề tôi đang phải đối mặt là có vẻ như tôi không thể xác định phương pháp trong FG? Ý tưởng làm thế nào để DRY này lên?
Cần thực hiện thủ thuật. Nó khá giống với mã của bạn, vì vậy nếu bộ đánh giá là nil trong phiên bản lambda, thì nó cũng không phải là nil trong phiên bản của bạn. Bạn có thể nắm cho tôi cả mã làm việc ban đầu và mã nhận được nils (cũng là stacktrace). Hiện tại tôi không có đủ thông tin để gỡ lỗi. –
Bạn không cần phải đầu tư thêm bất kỳ công việc nào nữa, điều này không quan trọng lắm, về cơ bản tôi chỉ muốn kiểm tra xem liệu có một lối tắt hay không. Dù sao tôi đã thực hiện một ý chính tại https://gist.github.com/3140033 nơi bạn có thể xem các mô hình, phần còn lại là 1: 1. – wintersolutions
Vâng, không phải lo lắng, nhưng sau khi kiểm tra mã, tôi không có ý tưởng gì 'evaluator' là :) –