【问题标题】:Rails STI ControllersRails STI 控制器
【发布时间】:2009-03-27 15:44:16
【问题描述】:

我有一个使用具有以下类的 STI 的 Rails 站点:

页面

主页

登陆页面

在前端,所有请求都由 Pages 控制器处理。但是,如果检测到的对象实际上是 LandingPage 的一个实例,我希望调用 LandingPages 控制器上的操作。 (例如,子控制器类中的 show 方法将引入一些并不总是相关的特定查找)。

关于如何最好地完成此任务的任何建议?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    这听起来有点像你在混淆 MVC 的区别,但它应该是可行的。

    我会在 Pages 模型上添加一系列测试(例如 supports_buzzbar_foo?wiggums_itemization_controller,然后在子类中根据需要覆盖它们)并在视图中使用这些测试有条件地生成到控制器方法的适当链接你想要的。

    这样你就可以让每个部分(大致)完成它的工作。

    【讨论】:

      【解决方案2】:

      Markus 的解决方案应该有效。您还可以将链接保留在指向 Pages 的视图中,评估传入对象,然后根据对象类重定向到适当的控制器。

      但是,除非您对每种类型的对象执行完全不同的操作,否则您的控制器中将出现重复的代码。因此,您最好还是坚持使用 Pages 控制器并添加一些方法来处理该对象所需的额外查找。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多