Я делаю систему отчетности для своего приложения.
Например, я создал модель 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?
Также мне пришлось принудительно установить атрибут «тип» в контроллере, потому что он не получил значение непосредственно из формы, есть ли хороший способ сделать это?
Маршрутизация была еще одной проблемой, поскольку она пыталась построить маршруты на основе имен унаследованных моделей. Я преодолеваю это, добавляя другие модели в маршруты, указывающие на тот же контроллер.