我需要定义一些可以从不同控制器(而不是视图)调用的常见代码片段。有没有办法在Rails v3中做到这一点?
我在ApplicationHelper中定义了代码并尝试使用
调用它@template.<helper_method>
和
ActionController::Base.helpers.<helper_method>
但它不起作用?
答案 0 :(得分:1)
您将在控制器中调用的代码可以在其父代ApplicationController
中定义为受保护的方法。
应用/控制器/ application_controller.rb:强>
class ApplicationController
# ...
protected
def work_some_magic(param)
# work magic here
end
end
应用/控制器/ users_controller.rb:强>
class UsersController < ApplicationController
# ...
def show
@user = User.find(params[:id])
@magic_result = work_some_magic(@user)
end
end