У меня есть приложение rails, в котором есть несколько моделей. Одна конкретная модель является «фокусом» приложения, и в ней определено несколько отношений «один ко многим» и «несколько ко многим ко многим».
Я создал логику для экспорта полей в файл CSV, и в рамках модели я определил пару методов, которые кто-то показал мне, чтобы облегчить это. Вот два метода:
def self.csv_header
fields = attr_order.*.to_s & content_columns.*.name
fields -= %w{created_at updated_at created_on updated_on deleted_at}
fields.reject! { |f| never_show? f }
fields
end
def to_csv
self.class.csv_header.map { |h| send(h) }
end
Однако в моей основной модели (называемой пациентом) мне нужно включить поля некоторых других моделей «один ко многим» (например, home_address, который содержит улицу, город, штат, почтовый индекс и т. Д.). Можно ли сохранить модель пациента внутри? Я установил логику в своем контроллере, которая может добавлять информацию о другой модели, но кажется, что было бы намного чище позволить модели пациента получить всю дополнительную информацию, которая ей нужна от других моделей, и добавить ее в строки экспорта.