gpt4 book ai didi

ruby-on-rails - Twitter API- Rails 未定义方法 `name' 为 nil :NilClass

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:59 24 4
gpt4 key购买 nike

我正在开发一个返回用户加入 Twitter 的日期的项目。在搜索存在的用户时,一切都很顺利。然而,当我搜索一个不存在的用户名时,我得到了这个丑陋的错误:

  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 error,但我不确定如何准确地实现它。请指教。

谢谢!

最佳答案

当用户不存在您搜索的用户名时,twitter_client.user_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

关于ruby-on-rails - Twitter API- Rails 未定义方法 `name' 为 nil :NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26085900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com