Rails:来自Lib的类方法助手

时间:2012-06-21 17:39:33

标签: ruby ruby-on-rails-3

对不起,标题可能不是很清楚。基本上我在lib / ab_feature / ab_feature.rb中有一个名为ABFeature的Split gem的包装器

在我看来,我希望能够像这样打电话给我的助手:

ABFeature.current_settings

但这不起作用,这是我的错误:

undefined local variable or method `session' for ABFeature:Module

session是ActionController的一个方法,似乎我无法访问它......

这是我的代码:

require 'split'

module ABFeature
  class << self
    include Split::Helper

    def current_settings
      ...
    end
  end
end


class ActionController::Base
  ActionController::Base.send :extend, ABFeature
end

有什么想法吗? 格雷格

1 个答案:

答案 0 :(得分:1)

我不确定结果应该是什么,但是如果你想在控制器中使用current_settings方法,我认为你可以做到

module ABFeature
  include Split::Helper

  def current_settings
  end
end

然后

class ApplicationController < ActionController::Base
  include ABFeature
end

我认为您通常将助手称为实例方法。然后他们应该与控制器共享上下文。