我有一个 ruby on rails 应用程序,我需要在其中运行一个 rake 任务,该任务将访问 twitterstream api 并将来自某个位置的推文插入数据库。为此,我创建了一个名为 uncat_tweets 的表。我的 rake 任务看起来像这样
task :get_uncat_tweets => :environment do
TweetStream.configure do |c|
...
...
end
puts "#{UncatTweets.count}
client = TweetStream::Client.new()
client.locations(coordinates) do |status|
puts "#{status.text}"
t = UncatTweets.new()
t.text = status.text
t.long = ...
t.lat = ...
t.time = ....
t.save!
end
我的 uncat_tweets 模型如下所示:
class UncatTweets < ActiveRecord::Base
attr_accessible :lat, :long, :text, :time, :user
end
当我运行 rake get_uncat_tweets 时,tweetstream 工作并喷出推文。但是 rake 任务并没有推送到数据库。线路puts "#{UncatTweets.count}"
返回。我去了 Rails 控制台并尝试插入 UncatTweets 的虚拟值,它成功了!但是当我运行 rake 任务时,程序没有错误地继续执行,但永远不会推送到数据库中。这里发生了什么事?我无法找到解决此问题的方法。请帮我