Twitter API-Rails undefined method 'name' for nil: NilClass

I am working on a project that returns the date the user joined Twitter. When looking for a user that exists, everything works smoothly. However, when I search for a username that does not exist, I get this ugly error:

  NoMethodError in WelcomeController#search_results
  undefined method `name' for nil:NilClass


Here is my code:

 def search_results
    twitter_client = do |config|
      config.consumer_key        = ENV['twitter_consumer_key']
      config.consumer_secret     = ENV['twitter_consumer_secret']
      config.access_token        = ENV['twitter_access_token']
      config.access_token_secret = ENV['twitter_access_token_secret']
    @name = params[:name]
    @full_name = twitter_client.user_search(@name)
    created_at = twitter_client.user_search(@name).first.created_at
    @created_at = created_at    
    @user_id = twitter_client.user_search(@name)


I'm new to Rails and I believe I need to use Rescue or a flash error, but I'm not sure how to exactly implement it. Please advise.



source to share

1 answer

When the user does not exist with the username you are looking for, twitter_client.user_search(@name)

it finds nothing and the method first

returns nil

and you try to read the attribute name

from nil


This is why you are getting the error.

You can do it:

@name = params[:name]
user = twitter_client.user_search(@name).first
if user
     @full_name =
     @created_at = user.created_at    
     @user_id =
     # do something else




All Articles