簡體   English   中英

耙任務未插入數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM