Я создаю систему отчетов для своего приложения. Например, я создал модель ReportKind, но, поскольку я могу сообщать о многом, я хотел создать разные группы типов отчетов. Поскольку у них много общего поведения, я пытаюсь использовать наследование.
Итак, у меня есть основная модель:
model ReportKind << ActiveRecord::Base
end
, созданная, например:
model UserReportKind << ReportKind
end
В моей таблице report_kinds есть столбец типа, а пока здесь все работает. Моя проблема в формах / контроллерах.
Когда я делаю ReportKind.new
, моя форма строится с префиксом '* report_kind *'.
Если получить UserReportKind , даже через ReportKind.find
, форма создаст префикс user_report_kind.
Это приведет к беспорядку в контроллерах, поскольку иногда я есть params [: report_kind], иногда params [: user_report_kind] и т. д. для каждого другого наследования, которое я сделал.
Есть ли способ заставить его всегда использовать префикс report_kind? Также мне пришлось принудительно установить атрибут 'type' в контроллере, потому что он не получал значение непосредственно из формы, есть ли красивый способ сделать это?
Маршрутизация была другой проблемой, так как он пытался построить маршруты, основанные на именах унаследованных моделей. Я преодолеваю это, добавляя другие модели в маршруты, указывающие на тот же контроллер.