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
Другие вопросы по тегам