很抱歉,如果这是一个新手问题,我会尝试找到一种正确的编码方式:
我需要在我的应用程序中的几个地方重新使用视图和它的逻辑
这个视图有一些javascript,我会用“render”来显示它(ajax和innerHTML不相关),但我不想在每个控制器中重复我的逻辑使用它,所以:是他们的“偏” “在我的控制器中这样做的方法? 一个控制器“部分”注入代码的方式?
我目前唯一的解决方案是复制/通过控制器代码,我不想这样做
问候
格雷瓜尔
答案 0 :(得分:2)
您可以使用父类来包含所有重复的控制器代码。一种简单的方法是使用ApplicationController
,然后所有方法都可用于其后代。
class ApplicationController < ActionController::Base
def say_hello
puts "Hello"
end
end
class Subcontroller < ApplicationController
def index
say_hello # => Hello
end
end
这是一种简单的方法,但presenter
,decorator
或service
对象可能更合适。进行搜索,看看哪些适合您的需求,或者如果您稍微扩展一下这个问题,我可以提供更多的意见。
希望有所帮助。