我正在做一个小项目而且我有点卡住了。我已经在线阅读了一些教程,以便让事情发生变化,这就是我想出的。当使用Twitter进行身份验证并使用Twitter gem来运行类似的东西时,一切都有效。
current_user.twitter.home_timeline(count:10)
然而,由于Twitter有限制,我决定使用Omniauth进行身份验证的“current_user”,他/她的推文将被保存到User_id与该用户相关的数据库中。这是我到目前为止所得到的;
控制器:
def pull
current_user.newtweets.pull_tweets
end
MODEL(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
MODEL(user.rb)
...
has_many :newtweets
...
ROUTE:
match 'refresh' => 'tweet#pull'
所以,我是新手,但这就是我迄今为止构建的内容。我在上面的设置中遇到错误; “未初始化的常量User :: Newtweet”
现在,如果我转到Controller并更换Controller中的以下行; def pull current_user.newtweets.pull_tweets.limit(100) 端
用;
def pull
Newtweets.pull_tweets
end
我得到另一个错误;无法验证您的身份
对此的任何帮助都会很棒。
答案 0 :(得分: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