我有一个名为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库,以及包含它的各种其他方法,但没有成功。
我在这里做错了什么?
答案 0 :(得分: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"