Tôi có một Mô hình người dùng thuộc về một Nhóm. Nhóm phải có thuộc tính tên duy nhất. Nhà máy của người dùng và nhà máy nhóm được định nghĩa là:Tìm hoặc tạo bản ghi thông qua liên kết factory_girl
Factory.define :user do |f|
f.association :group, :factory => :group
# ...
end
Factory.define :group do |f|
f.name "default"
end
Khi người dùng đầu tiên được tạo nhóm mới cũng được tạo. Khi tôi cố gắng tạo một người dùng thứ hai nó không thành công vì nó muốn tạo lại một nhóm.
Có cách nào để nói phương pháp kết hợp factory_girl để tìm kiếm đầu tiên cho một bản ghi hiện có không?
Lưu ý: Tôi đã cố gắng xác định một phương pháp để xử lý điều này, nhưng sau đó tôi không thể sử dụng f.association. Tôi muốn có thể sử dụng nó trong các trường hợp của Cucumber như sau:
Given the following user exists:
| Email | Group |
| [email protected] | Name: mygroup |
và điều này chỉ có thể hoạt động nếu liên kết được sử dụng trong Định nghĩa nhà máy.
Hoạt động rất tốt, cảm ơn. Trong Rails 4, cách ưa thích sẽ là: 'Group.find_or_create_by (name: name)' – migu
Cách ưa thích trong Rails 4 thực sự là 'Group.where (name: name) .first_or_create'. – Laurens
Điều này có lẽ là câu trả lời được chấp nhận. Drive-by-ers ... đây là giải pháp của bạn. – ocodo