是否可以通过.getElementById
块在Rails助手中进行可包含的控制器操作?我在想这样的事情:
included
已经尝试通过module XablauHelper
included do
def my_shared_action
true
end
end
end
阻止并通过使用类方法即class.eval
但没有成功,我已经找到了一个解决方案,使父控制器具有所需的共享操作并继承从它,但为了模块化设计,我想使它更多"全球"方法,所以我可以创建我的解决方案并重用代码,任何不使用继承的建议?
答案 0 :(得分:1)
在帮助中添加控制器操作可能是错误的选择,因为这些方法适用于视图。
请考虑使用控制器问题,并在必要时包含它们。例如:
# in app/controllers/concerns/useful_functions_concern.rb
module UsefulFunctionsConcern
extend ActiveSupport::Concern
included do
rescue_from SomeException, with: :handle_access_denied
end
def useful_method
# ...
end
protected
def handle_access_denied
# ...
end
end
# in your controller
class XyzController < ApplicationController
include UsefulFunctionsConcern
def index
useful_method
end
end
可以共享公共控制器动作并且控制器具有共同点,例如它们都是API控制器,也考虑使用继承来实现这一点。例如:
# parent controller
class ApiController < ApplicationController
def my_shared_action
end
end
class SpecificApiController < ApiController
end