有没有办法将一个模型称为另一个模型? STI问题

时间:2019-05-30 20:47:56

标签: ruby-on-rails

我想知道是否有一种方法可以调用模型,因为它是超类

我正在数据库中的health_units上使用STI,所以我有一个模型HealthUnit,其中放置了所有验证信息和一些有用的方法,然后在HealthUnit之后建立了其他模型来使用STI例如OdontologyUnitEmeregencyUnit

在使用HealthUnitModel从数据库中检索它们后,我尝试使用super(health_unit)将它们作为本地变量传递,但是它不起作用。

我试图在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'文件。我将这个文件放在下面,但是再次出现这个问题是因为正在从数据库中检索模型作为子模型而不是父模型,并且我只设置了嵌套在“ health_units”路径中的“ comments”资源路径。

! 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(父模型)而不是其子模型之一进行传递。

0 个答案:

没有答案