NameError:未定义的局部变量或方法`bitly'for main:Object

时间:2013-09-30 21:19:39

标签: ruby-on-rails

我好几天都找不到这个问题的解决方案。我是铁轨初学者的红宝石,所以我确信我错过了一些明显的东西。

我正在尝试缩短网站的网址,以便在我想为每个新活动创建的推文中链接到该网址。当我在我的网站上创建一个新事件时,我收到以下错误:

  

NameError:未定义的局部变量或方法bitly' for main:Object from (irb):7 from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in start'       来自/usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in start' from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands.rb:41:in'       来自script / rails:6:require' from script/rails:6:in'

我正在使用bitly gem

在我的gemfile中,我有:

gem 'bitly', "~> 0.9.0"

我在config / initializers中创建了一个bitly.rb文件:

Bitly.configure do |config|
  config.api_version = 3
  config.login = "xxxx"
  config.api_key = "yyyy"
end

在我的活动模型中,我有:

after_create :tweet_event

def tweet_event
    client = Bitly.client
    u = bitly.shorten('http://www.weinevents.de')
    u = u.short_url
    tweet = title + " " + u
    send_tweet(tweet)
end

在我的application_helper.rb文件中,我有:

def send_tweet(tweet)
    client = Twitter::Client.new
    client.update(tweet)   
end

在我的application_controller中我有

require 'bitly'

1 个答案:

答案 0 :(得分:1)

这是一个错字。你有bitly.shorten('http://www.weinevents.de')。当文档说bitly.shorten时,bitly引用一个客户端对象,您将其命名为client。因此:

client.shorten('http://www.weinevents.de')