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 %>
注意@符号。
然而,这确实违反了瘦的控制器厚模型约定,应该像在服务中一样在其他地方初始化。