如何从rails中的视图和控制器调用辅助方法?

时间:2010-05-13 10:51:42

标签: ruby-on-rails model-view-controller helper

我为一些简单的计算创建了一个辅助方法。这个辅助方法只返回一个整数。我需要控制器和视图中的帮助器。

不幸的是,它在视图中运行良好,但在控制器中运行不佳。我收到undefined local variable or method错误。我该如何解决?

全部谢谢

2 个答案:

答案 0 :(得分:10)

为了在控制器和视图中使用相同的方法在application_controller.rb中添加方法并使其成为辅助方法

例如

class ApplicationController < ActionController::Base
  helper :all # include all helpers, all the time
  #protect_from_forgery # See ActionController::RequestForgeryProtection for details
  helper_method :current_user 

  def current_user
    session[:user]
  end

end

现在,您可以在两个控制器中使用 current_user 方法。视图

答案 1 :(得分:4)

我使用以下解决方案。因为我认为辅助方法应该存储在适当的辅助模块中。

module TestHelper
  def my_helper_method
    #something
  end
end


class SomeController < ApplicationController
  def index
    template.my_helper_method
  end
end