首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rails的Twitter集成

使用Rails的Twitter集成
EN

Stack Overflow用户
提问于 2013-05-22 06:18:27
回答 1查看 369关注 0票数 0

我有一个Rails应用程序(Ruby-1.9,Rails-3.2),它与twitter集成,动态显示包含特定“关键字”的最新tweet。但它在浏览器上将错误抛出为NameError (未初始化的常数Twitter::Search )。我已经运行了db迁移,重新启动了服务器,并尝试寻找网络上可用的各种选项。但似乎什么都起不到作用。有人能帮助解决这个错误吗?

模型和控制器文件如下

Tweet.rb (模型文件)

代码语言:javascript
复制
class Tweet < ActiveRecord::Base



def self.get_latest_new_year_resolution_tweets(keyword)


search = Twitter::Search.new


search.containing(keyword).result_type("recent").per_page(100).fetch.each do |tweet_results|

  twitter_created_at = DateTime.parse(tweet_results.created_at)

  unless Tweet.exists?(['twitter_created_at = ? AND from_user_id_str = ?', DateTime.parse(tweet_results.created_at), tweet_results.from_user_id_str])


    Tweet.create!({

        :from_user => tweet_results.from_user,

        :from_user_id_str => tweet_results.from_user_id_str,

        :profile_image_url => tweet_results.profile_image_url,

        :text => tweet_results.text,

        :twitter_created_at => twitter_created_at

       })

    end

  end

 end

end

TweetsController

代码语言:javascript
复制
class TweetsController < ApplicationController

def index
end 

def create

  String strText = params[:tweet][:search].to_s

  Tweet.get_latest_new_year_resolution_tweets(strText)


 if Tweet.count > 0                         

   Tweet.delete_all        

end    

    Tweet.get_latest_new_year_resolution_tweets(strText)

    @tweets = Tweet.order("twitter_created_at desc")  
    render 'index'  

  end

end

Index.html.erb (视图文件)

代码语言:javascript
复制
<h1>Twitter connect</h1>



<form action="create" method="post">

  <label for="keyword">Enter Keyword</label>

    <input id="keyword" name="tweet[search]" size="30" type="text" />


  <input type="submit" value="search" />

  </br> <br>  

 </form>

</br></br>  



<div id="container">

   <% if (@tweets != nil && @tweets.count>0) then %>

<ul>

      <% @tweets.each do |tweet| %>

     <li class="<%=cycle('odd', '')%>">

    <%= link_to tweet.from_user, "http://twitter.com/#{tweet.from_user}", :class => "username", :target => "_blank" %>  

    <div class="tweet_text_area">

        <div class="tweet_text">

            <%=raw display_content_with_links(tweet.text) %>

        </div>

        <div class="tweet_created_at">

            <%= time_ago_in_words tweet.twitter_created_at %> ago

        </div>

     </div>

   </li>

    <% end %>

   </ul>

 <% end %>

</div> 

The文件如下所示

代码语言:javascript
复制
source 'http://rubygems.org'

gem 'rails', '3.0.3'
gem 'sqlite3', '1.3.6',:group => :development 


#gem 'ruby-mysql'
#gem 'mysql2'
group :production do
gem 'pg'
 end

 gem 'twitter', '4.6.2'
EN

回答 1

Stack Overflow用户

发布于 2013-05-22 10:47:08

application.rb 顶部的app/models/tweet.rb文件中包括以下代码

代码语言:javascript
复制
require 'twitter'

例:-

代码语言:javascript
复制
class Tweet < ActiveRecord::Base
  require 'twitter'
  ....
  ...
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16684755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档