我不喜欢问诺比的问题,但我花了更多的时间来接受谷歌搜索并试图找出这个简单的过程。我正在尝试使用twitter gem在我的应用程序视图中发布推文。
我有这个脚本,当我在命令行上运行它时,但我不知道如何访问我的视图上的数据。我安装了宝石。我尝试将此代码添加到我的控制器中,但它仍然不允许我在视图中调用它。
require 'rubygems'
require 'twitter'
client = Twitter::REST::Client.new do |config|
config.consumer_key = "(redacted)"
config.consumer_secret = "(redacted)"
config.access_token = "(redacted)"
config.access_token_secret = "(redacted)"
end
client.search("help", :result_type => "recent").take(3).each do |tweet|
puts tweet.text
end
如果有人能指出我正确的方向,那就太棒了。
答案 0 :(得分:0)
好吧,我会发布一些(未经测试的)代码,这些代码可能会帮助您找到正确的方向。这不是最好的方法,因为它不是很灵活,但它应该做你的例子所做的。确保将Twitter gem添加到Gemfile并捆绑安装。创建一个名为TweetsFromAccount的Ruby类。将它保存在/ lib目录下工作正常。
class TweetsFromAccount
def initialize
@client = Twitter::REST::Client.new do |config|
config.consumer_key = "(redacted)"
config.consumer_secret = "(redacted)"
config.access_token = "(redacted)"
config.access_token_secret = "(redacted)"
end
end
def recent_tweets(quantity)
array_of_tweets = []
@client.search("help", :result_type => "recent").take(quantity).each do |tweet|
array_of_tweets << tweet.text
end
end
end
在控制器中,创建一个新的TweetsFromAccount对象并将其分配给实例变量@tweets。创建一个额外的实例变量,设置@ tweets.recent_tweets(3)的值。这应该取3条最新的推文。
def show
# other stuff
@tweets = TweetsFromAccount.new
@array_of_tweets = @tweets.recent_tweets(3)
end
然后在你看来,只需迭代@array_of_tweets。
<ul>
<% @array_of_tweets.each do |tweet| %>
<li><%= tweet %></li>
<% end %>
</ul>