Twitter集成rails 4 app

我正在尝试使用这个gem将twitter feed集成到我的Rails 4应用程序中。

我已经阅读了github页面上的文档,但是在我的视图中尝试使用方法时遇到了问题。

我在名为twitter_init.rb的初始化文件中有以下内容(带有我的身份validation信息):

 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 

当我在我的视图中尝试使用以下代码时,我收到错误的undefined local variable or method 'client' for class#<#:...>

    

是否有另一个公开客户端变量的步骤,或者我没有正确初始化它?

当您在启动文件中将客户端设置为Twitter :: Streaming :: Client.new时,您创建了一个局部变量。 这个变量失去了范围,并且在您到达视图时很久就消失了。

要使其正常工作,请删除twitter_init.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 

然后在视图中

 <% @client.sample do |tweet| %> <%= tweet.text %> <% end %> 

注意@符号。

然而,这确实违反了瘦的控制器厚模型约定,应该像在服务中一样在其他地方初始化。