这似乎是一个类似的问题,但答案可能两年后不同:Rails way to render different actions & views based on user type?
我有一个可以有多种类型的STI模型。通常,但并非总是如此,视图将根据类型而不同。同样,控制器动作的逻辑可能因类型而异。我想避免必须根据类型更改if / elsif条件的高维护成本。
我可以想到几种方法可以编写一些辅助函数/模块来使这更容易,但是想知道是否已经存在为此目的而构建的任何宝石。
你的想法很受欢迎。
答案 0 :(得分:1)
只要在路径文件中声明它们,就可以为不同的STI类型创建单独的控制器。即
Base < ActiveRecord::Base
end
Foo < Base
end
Bar < Base
end
#config/routes.rb
resources :foos
resources :bars
然后,您只需要为foo
生成一个控制器,为bar
生成一个控制器及其各自的方法/视图。
对于常见元素,您可以使用部分视图和基本模型。 (你也许能够以某种方式使用Base控制器。虽然我不确定)