试图在模块中包含Rails helper库

时间:2013-04-15 03:44:24

标签: ruby-on-rails ruby module include require

我有一个名为Sms的模块,我在lib/sms.rb中定义。在其中,我有一个名为Sms.chunk的方法,它使用方法word_wrap。这是TextHelper库的一部分,所以我将它包含在include ActionView::Helpers::TextHelper模块的开头:

module Sms
  include ActionView::Helpers::TextHelper

  def Sms.chunk
  ...
  word_wrap
  ...

我在require "sms"

中使用行config/initializers/additional_libs.rb进行初始化时需要此模块

我还有一个名为TWILIO_API的Grape API类,我想调用Sms.chunk。但是,当我这样做时,我得到undefined method word_wrap'对于Sms:Module`。我尝试在TWILIO_API类中包含TextHelper库,以及包含它的各种其他方法,但没有成功。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

问题是wrap_wordinstance method,您正在从类方法Sms.chunk调用它。通过删除Sms.部分使其成为实例方法。例如,以下工作:

require 'action_view'
class Test
  include ActionView::Helpers::TextHelper
  def test_method
    word_wrap('Once upon a time')
  end
end
o = Test.new
p o.test_method # "Once upon a time"