如何以及在何处定义将从各种控制器调用的公共代码 - Rails v3

时间:2010-10-19 23:32:13

标签: ruby-on-rails

我需要定义一些可以从不同控制器(而不是视图)调用的常见代码片段。有没有办法在Rails v3中做到这一点?

我在ApplicationHelper中定义了代码并尝试使用

调用它
@template.<helper_method>

ActionController::Base.helpers.<helper_method>

但它不起作用?

1 个答案:

答案 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