1

这似乎是一个类似的问题,但两年后的答案可能会有所不同:Rails way to render different actions & views based on user type?

我有一个可以有多种类型的 STI 模型。通常,但并非总是如此,视图会因类型而异。同样,控制器操作的逻辑可能因类型而异。我想避免必须根据类型更改 if/elsif 条件的高维护成本。

我可以想出几种方法来编写一些辅助函数/模块来使这更容易,但想知道是否已经存在为此目的构建的任何 gem。

您的想法表示赞赏。

4

1 回答 1

1

只要在路由文件中声明它们,就可以为不同的 STI 类型创建单独的控制器。IE。

Base < ActiveRecord::Base
end

Foo < Base
end

Bar < Base
end


#config/routes.rb
resources :foos
resources :bars

然后你只需要为它们各自的方法/视图生成一个控制器foo和一个控制器。bar

对于常见元素,您可以使用局部视图和基本模型。(您也许也可以以某种方式使用 Base 控制器。不过我不确定)

于 2012-10-31T21:21:02.027 回答