2013-04-15 74 views
3

我有一個名爲Sms的模塊,我在lib/sms.rb中定義。在它內部,我有一個方法Sms.chunk,它使用方法word_wrap。這是TextHelper庫的一部分,所以我用include ActionView::Helpers::TextHelper包括它在模塊的開頭:試圖在模塊中包含Rails幫助程序庫

module Sms 
    include ActionView::Helpers::TextHelper 

    def Sms.chunk 
    ... 
    word_wrap 
    ... 

我在初始化過程中要求該模塊與線require "sms"config/initializers/additional_libs.rb

我也有一個稱爲TWILIO_API的葡萄API類,我想要撥打Sms.chunk。但是,當我這樣做時,我得到了undefined method word_wrap'for Sms:Module`。我曾嘗試在TWILIO_API類本身中包含TextHelper庫以及包含它的各種其他方式,但都沒有成功。

我在這裏做錯了什麼?

回答

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"