Ruby on rails Can';从gem(Twilio ruby)调用方法,似乎在我的控制器中查找,如何正确地确定范围?
我的GEM文件中有以下行,并且已经完成了Ruby on rails Can';从gem(Twilio ruby)调用方法,似乎在我的控制器中查找,如何正确地确定范围?,ruby-on-rails,ruby,twilio,Ruby On Rails,Ruby,Twilio,我的GEM文件中有以下行,并且已经完成了捆绑包安装: gem 'twilio-ruby' 我有以下基于twilio ruby gem示例的代码: class TwilioEntriesController < ApplicationController def process_message # init client @account_sid = 'REMOVED' @auth_token = 'REMOVED' @from_number =
捆绑包安装
:
gem 'twilio-ruby'
我有以下基于twilio ruby gem示例的代码:
class TwilioEntriesController < ApplicationController
def process_message
# init client
@account_sid = 'REMOVED'
@auth_token = 'REMOVED'
@from_number = '+14159675278'
@client = Twilio::REST::Client.new(@account_sid, @auth_token)
# send response
@client.account.sms.messages.create(
:from => @from_number,
:to => '+REMOVED',
:body => 'Hey there!'
)
render :result, :layout => ''
end
end
Ruby似乎正在“TwilioEntriesController”中寻找“Twilio”类,这就是调用的来源。它应该从正确的类(“Twilio”)调用该方法-给出了什么
我如何调用Twilio ruby文档中描述的Twilio类上的静态方法?这肯定是由于Twilio gem没有被正确地要求造成的。仔细检查
捆绑包列表
是否包含twilio ruby,以及在rails应用程序中是否正确设置了捆绑包。请尝试第10行的::twilio
这就像从根(/foo/bar)调用模块和类的绝对路径。当查找一个常量时,Ruby将遍历
模块。嵌套
,在您的例子中是[TwilioEntriesController]
。对于每个条目,它将搜索:
require
的调用
(Ruby中没有静态方法;只有实例和类方法,后者也可以视为实例方法,这取决于您的观点。)我已经有一段时间没有构建Rails应用程序了,但我认为您可以通过
require 'twilio-ruby'
在控制器文件的顶部。在现代Rails应用程序中,可能有一个更合适的中心位置来放置您的所有需求,尽管如此,请查阅文档以了解正确的方式。为时已晚,但最近遇到了相同的错误。 将此添加到您的文件:
require 'rubygems'
require 'twilio-ruby'
Adding::给出了更好的响应:
未初始化的常量Twilio
,似乎没有正确地包含gem。。。如果我添加'require twilio ruby',我就不会加载这样的文件--twilio ruby。。宝石会被打碎吗?必须重新启动rails服务器以获取对Gemfile的更改。请确保在修改Gem文件后重新启动服务器(rails s),否则rails s将看不到您的Gem文件更改-这是我的问题。@Tronathan:哇,我真不敢相信我忘了这么做+1.
require 'rubygems'
require 'twilio-ruby'