1

我正在做一个小项目,我有点卡住了。我已经在网上遵循了一些教程来让事情动起来,这就是我想出的。在使用 Twitter 进行身份验证和使用 Twitter gem 运行类似的东西时,一切正常;

current_user.twitter.home_timeline(count:10)

但是,由于 Twitter 有限制,我决定使用 Omniauth 进行身份验证的“current_user”,他/她的推文将通过 User_id 保存到与该用户相关的数据库中。这是我到目前为止所得到的;

控制器:

def pull
current_user.newtweets.pull_tweets
end

模型(tweets.rb)

class Newtweets < ActiveRecord::Base
attr_accessible :content, :followers, :retweets, :screen_name, :time_date, :tweet_id,
:user_id

belongs_to :user

def self.pull_tweets
Twitter.home_timeline(since_id: maximum(:tweet_id)).each do |tweet|
unless exists?(tweet_id: tweet.id)
    create!(
            tweet_id: tweet.id,
            followers: tweet.user.followers_count,
            retweets: tweet.retweet_count,
            time_date: tweet.created_at,
            content: tweet.text,
            screen_name: tweet.user.screen_name,
    )
end
end
end

模型(用户.rb)

...
has_many :newtweets
...

路线:

match 'refresh' => 'tweet#pull'

所以,我对此很陌生,但这就是我到目前为止所构建的。上面的设置确实出错了;“未初始化的常量 User::Newtweet”

现在,如果我去控制器并替换控制器中的以下行;def pull current_user.newtweets.pull_tweets.limit(100) 结束

和;

def pull
Newtweets.pull_tweets
end

我得到另一个错误;无法验证您的身份

对此的任何帮助都会很棒。

4

1 回答 1

0

我想通了,或者我认为是这样,但我确信它不是最干净的方法,但它可以满足我的需要。这里是;

def self.pull
    tweets = User.current.twitter.home_timeline(since_id: maximum(:tweet_id))
    tweets.each do |tweet|
        unless exists?(tweet_id: tweet.id)
        Newtweets.create({tweet_id: tweet.id, followers: tweet.user.followers_count, retweets: tweet.retweet_count, time_date: tweet.created_at, content: tweet.text, screen_name: tweet.user.screen_name, user_id: User.current })
        end
   end
end
于 2013-05-26T04:16:39.033 回答