3

我有一个名为的模块Sms,我在lib/sms.rb. 在其中,我有一个Sms.chunk使用 method 的方法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 methodSms:Module 的 word_wrap'。我尝试在 TWILIO_API 类本身中包含 TextHelper 库,以及包含它的各种其他方式,但没有成功。

我在这里做错了什么?

4

1 回答 1

3

问题是wrap_word是一个instance 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"
于 2013-04-15T05:29:19.243 回答