Twitter Integration using Ruby on Rails -
i have ruby on rails application (ruby-1.9, rails-3.2)which integrates twitter display latest tweets containing particular "keyword" dynamically. throws error nameerror in tweetscontroller#create uninitialized constant twitter::search on browser . have run db migrations, restarted server , tried various options available on net. nothing seems work. can resolve error ?
the model , controller files below
tweet.rb (model file)
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 |tweet_results| twitter_created_at = datetime.parse(tweet_results.created_at) unless tweet.exists?(['twitter_created_at = ? , 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
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 (the view file)
<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) %> <ul> <% @tweets.each |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 gemfile below
source 'http://rubygems.org' gem 'rails', '3.0.3' gem 'sqlite3', '1.3.6',:group => :development #gem 'ruby-mysql' #gem 'mysql2' group :production gem 'pg' end gem 'twitter', '4.6.2'
include below code in application.rb or top of app/models/tweet.rb files
require 'twitter' ex:-
class tweet < activerecord::base require 'twitter' .... ... end
Comments
Post a Comment