【发布时间】:2019-11-26 03:52:33
【问题描述】:
不确定这是变形还是 STI。
我有一个模型 Activity,我有另一个类 Integrity 通过 STI 继承。在那个模型中,我有这个:
class Integrity < Activity
def self.model_name
Activity.model_name
end
end
我看到这有助于在 STI 下进行路由。
我设置我的路线:
resources :integrity, controller: :activities, type: 'Integrity'
和屈折:
inflect.plural 'integrity', 'integrity'
inflect.singular 'integrity', 'integrity'
inflect.irregular 'integrity', 'integrity'
这似乎有效:
>> url_for [:new, :integrity]
=> "/integrity/new"
索引路由除外:
>> url_for [:integrity]
!! #<ActionController::UrlGenerationError: No route matches {:action=>"show", :controller=>"activities", :type=>"Integrity"}, missing required keys: [:id]>
但这有效:
>> url_for [:integrity, :index]
=> "/integrity"
我遇到的问题是,对于我的其他 STI 课程的“正常”变形,我有这个:
>> url_for [:operations]
=> "/operations"
如何让 rails 将 :integrity 识别为索引路由?我希望所有 STI 类都具有相同的视图文件,然后具有用于构建动态路由等的通用结构。我不能有一些需要额外的 :index 而有些则不需要。
【问题讨论】:
标签: ruby-on-rails sti