0

几天来我找不到解决这个问题的方法。我是一名 ruby​​ on rails 初学者,所以我确信我遗漏了一些明显的东西。

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

NameError: undefined local variable or method 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:instart' from /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' from脚本/rails:6:in 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'
4

1 回答 1

1

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

client.shorten('http://www.weinevents.de')
于 2013-09-30T21:24:16.333 回答