Ruby on rails twitterapi-Rails未定义的方法`name';零级:零级
我正在做一个项目,返回用户加入Twitter的日期。在搜索存在的用户时,一切工作都很顺利。但是,当我搜索一个不存在的用户名时,我会遇到这样一个可怕的错误:Ruby on rails twitterapi-Rails未定义的方法`name';零级:零级,ruby-on-rails,ruby,search,twitter,nomethoderror,Ruby On Rails,Ruby,Search,Twitter,Nomethoderror,我正在做一个项目,返回用户加入Twitter的日期。在搜索存在的用户时,一切工作都很顺利。但是,当我搜索一个不存在的用户名时,我会遇到这样一个可怕的错误: NoMethodError in WelcomeController#search_results undefined method `name' for nil:NilClass 这是我的密码: def search_results twitter_client = Twitter::REST::Client.new d
NoMethodError in WelcomeController#search_results
undefined method `name' for nil:NilClass
这是我的密码:
def search_results
twitter_client = Twitter::REST::Client.new 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']
end
@name = params[:name]
@full_name = twitter_client.user_search(@name).first.name
created_at = twitter_client.user_search(@name).first.created_at
@created_at = created_at
@user_id = twitter_client.user_search(@name).first.id
end
我是Rails新手,我相信我必须使用Rescue或flash错误,但不确定如何准确地实现它。请告知
谢谢 当用户不存在您搜索的用户名时,
twitter\u客户端。user\u search(@name)
什么也找不到,并且first
方法返回nil
,您正试图从nil
读取name
属性
这就是为什么你会出错
您可以这样做:
@name = params[:name]
user = twitter_client.user_search(@name).first
if user
@full_name = user.name
@created_at = user.created_at
@user_id = user.id
else
# do something else
end
工作起来很有魅力!非常感谢你!(我会投赞成票,但他们不允许我投低于15分的赞成票:/)我有一个后续问题:我按照你的建议实现了代码,它工作起来很有魅力;如果他们搜索不存在的用户,他们将通过渲染重定向。我遇到的问题是,如果他们搜索一个不可能存在的用户,比如“a”,它会给出一个结果,而不是一个错误页面!这是为什么?我如何通过将它们发送到同一渲染来解决此问题?