Trong một nhà máy, làm cách nào để tôi tham chiếu đến giá trị của một trong các trường khác trong đối tượng đang được tạo?trong factorygirl, bất kỳ cách nào để tham chiếu đến giá trị của trường1 khi khởi tạo field2?
Giả sử mô hình Widget của tôi có hai lĩnh vực, nickname
và fullname
Bên trong nhà máy của tôi, tôi muốn sử dụng Faker tạo ra một nickname ngẫu nhiên khác nhau mỗi lần một nhà máy được tạo ra. (Cuối cùng đã tìm ra tôi phải sử dụng trình tự (: biệt danh), nếu không tên giống nhau cho tất cả các nhà máy.)
Để làm cho một số xác nhận dễ dàng hơn để kiểm tra, tôi muốn tạo một tên đầy đủ dựa trên biệt hiệu, một cái gì đó như fullname = "Full name for #{nickname}"
FactoryGirl.define do
factory :widget do
sequence(:nickname) { |n| Faker::Lorem.words(2).join(' ') }
sequence(:fullname) { |n| "Full name for " + ????? }
end
end
Bất cứ điều gì tôi đặt ở đâu ??? đi, tôi nhận được #<FactoryGirl::Decl...
thay vì bất kỳ tên hiệu nào được đặt thành.
Tôi đã thử tên, name.to_s, name.value ... dường như không có gì hoạt động.
Đó là điều đầu tiên tôi thử trong mã mẫu của tôi trong câu hỏi, nhưng thay vì # {field1} cho giá trị của trường, nó mang lại một số đối tượng #
jpwynn
Được rồi, tôi đã bỏ lỡ điều đó. Kiểm tra câu trả lời cập nhật của tôi. –
lừa gọn gàng, tôi sẽ cung cấp cho một thử nhờ !! – jpwynn