[英]Rake Task not inserting into database
我在ruby on rails應用程序中需要運行一個rake任務,該任務將擊中twitterstream api並將特定位置的tweet插入數據庫中。 為此,我創建了一個名為uncat_tweets的表。 我的耙子任務看起來像這樣
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會工作並發出tweet。 但是rake任務並沒有推送到數據庫。 該行將返回puts "#{UncatTweets.count}"
。 我去了Rails控制台,嘗試插入UncatTweets的虛擬值,它起作用了! 但是,當我運行rake任務時,程序將繼續執行而不會出現錯誤,但不會將其壓入數據庫。 這里發生了什么事? 我找不到解決此問題的方法。 請幫我
假設這是Rails 3,則應遵循Rails 3方法。
首先,在Rails應用程序中打開db/seeds.rb
。 像這樣設置(基於上面的rake任務):
TweetStream.configure do |c|
...
...
end
puts "Number of tweets: #{UncatTweets.count}"
client = TweetStream::Client.new()
# Note you will have to define the following variable "coordinates" somewhere
client.locations(coordinates) do |status|
UncatTweets.create(:text => status.text, :long => ..., :lat => ..., :time => ...)
end
然后通過執行rake db:seed
運行它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.