Хотелось бы узнать, есть ли способ назвать модель суперклассом
Я использую STI для своих блоков health_units в своей базе данных, поэтому у меня есть одна модель HealthUnit
, в которую я помещаю все свои проверки и несколько полезных методов, а затем строю другие модели, используя STI после HealthUnit
, например OdontologyUnit
и EmeregencyUnit
.
Я попытался передать их как локальные с super(health_unit)
после извлечения их из базы данных с помощью HealthUnitModel, но это не сработало.
Я попытался перечислить все единицы в моем представлении HealthUnit#index
, где я использую _health_unit.html.slim
, и чтобы решить, что мне просто нужно изменить мою строку render partial: health_unit
на render partial: 'health_unit' locals: {health_unit: health_unit}
, чтобы она работала, но она не работает кажись мне правильным.
Также, когда я пытался получить доступ к представлению HealthUnit#show
, он пытается перенаправить на пути дочерней модели вместо пути health_unit/(:id)
.
Наконец, я попытался получить доступ к представлению шоу, перенаправив его в контроллерах на мои правильные модели, но получаю ошибку. Rails говорит, что это из-за моего 'comments/_form.html.slim'
файла. Я помещу этот файл ниже, но опять-таки эта проблема связана с тем, что модели извлекаются из базы данных как дочерняя модель, а не как родительская модель, и я только устанавливаю путь ресурса 'comments', вложенный в путь 'health_units'.
! comments/_form.html.slim
div
= form_for [page, Comment.new] do |f|
.field
= f.label 'comentário'
br
= f.text_area :body
.actions = f.submit
Я хотел бы знать, есть ли способ передать единицы, которые я получаю, как health_units (родительская модель) вместо одной из дочерних моделей.