我正在关注Twitter gem的文档,并试图获得一些结果,但我得到了以下错误:
undefined method `sample' for nil:NilClass
我已经把它放在我的config/iinitializers/twitter_credentials.rb中(我的密钥和令牌填写在我的应用程序中)
@client = Twitter::Streaming::Client.new do |config|
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_ACCESS_SECRET"
end
以下是来自我的控制器的比特:
require 'twitter'
class StaticPagesController < ApplicationController
def home
@tweets = Array.new
@client.sample do |object|
@tweets << object.text if object.is_a?(Twitter::Tweet)
end
end
end
在我看来:
<% @tweets do |tweet| %>
<%= tweet.text %>
<% end %>
当然,这是在我的gemfile中:
gem 'twitter'
为什么我会犯那个错误?
问题是我使用实例变量(例如@client =
)引用它,而我需要使它成为常量或全局变量。
回答CLIENT =
另一种选择是将它实例化控制器中的客户端。
在控制器中,没有定义"sample"。
@client.sample do |object|