控制器的部分 - 如何?

时间:2018-04-25 16:55:48

标签: ruby-on-rails

很抱歉,如果这是一个新手问题,我会尝试找到一种正确的编码方式:

我需要在我的应用程序中的几个地方重新使用视图和它的逻辑

这个视图有一些javascript,我会用“render”来显示它(ajax和innerHTML不相关),但我不想在每个控制器中重复我的逻辑使用它,所以:是他们的“偏” “在我的控制器中这样做的方法? 一个控制器“部分”注入代码的方式?

我目前唯一的解决方案是复制/通过控制器代码,我不想这样做

问候

格雷瓜尔

1 个答案:

答案 0 :(得分:2)

您可以使用父类来包含所有重复的控制器代码。一种简单的方法是使用ApplicationController,然后所有方法都可用于其后代。

class ApplicationController < ActionController::Base
  def say_hello
    puts "Hello"
  end
end

class Subcontroller < ApplicationController
  def index
    say_hello # => Hello
  end
end

这是一种简单的方法,但presenterdecoratorservice对象可能更合适。进行搜索,看看哪些适合您的需求,或者如果您稍微扩展一下这个问题,我可以提供更多的意见。

希望有所帮助。