Rails fabricator - как получить значение из поля ассоциации?
Допустим, у меня есть модель User, у которой много заметок. Каждая заметка имеет поле user_name. Я хотел бы, чтобы мои заметки Fabricator выглядели примерно так:
Fabricator(:note, class_name: Note) do
user
content Faker::Lorem.paragraph(1)
user_name user.full_name
end
То, что я пытаюсь сделать, это установить user_name со значением из метода full_name от пользователя, который уже существует. Но я получаю следующую ошибку:
undefined method `full_name' for #<Fabrication::Schematic::Attribute:0x0000000a279c50>
Любая помощь будет оценена.
1 ответ
Решение
Со временем в документации обнаружил, что есть хэш атрибутов, который я могу использовать:
Fabricator(:note, class_name: Note) do
user
content Faker::Lorem.paragraph(1)
user_name { |attrs| attrs[:user].full_name }
end