Ruby on rails Ruby Twitter gem:Twitter\u client.update上nil:NilClass的未定义方法'each\u byte'
我对宝石有严重的问题。它在rails控制台中工作得非常好,但在lib/It中不是 nil:NilClass的未定义方法'each_byte' 连续 完整跟踪:Ruby on rails Ruby Twitter gem:Twitter\u client.update上nil:NilClass的未定义方法'each\u byte',ruby-on-rails,ruby,twitter,ruby-on-rails-5,Ruby On Rails,Ruby,Twitter,Ruby On Rails 5,我对宝石有严重的问题。它在rails控制台中工作得非常好,但在lib/It中不是 nil:NilClass的未定义方法'each_byte' 连续 完整跟踪: | 2019-07-23T16:53:21.793Z 64165 TID-oxprcg2np WARN: NoMethodError: undefined method `each_byte' for nil:NilClass | 2019-07-23T16:53:21.793Z 64165 TID-oxprcg2np WARN: /U
| 2019-07-23T16:53:21.793Z 64165 TID-oxprcg2np WARN: NoMethodError: undefined method `each_byte' for nil:NilClass
| 2019-07-23T16:53:21.793Z 64165 TID-oxprcg2np WARN: /Users/DekaKisaLove/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/uri/rfc2396_parser.rb:308:in `block in escape'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/activesupport-5.2.3/lib/active_support/core_ext/string/output_safety.rb:230:in `gsub'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/activesupport-5.2.3/lib/active_support/core_ext/string/output_safety.rb:230:in `gsub'
| /Users/DekaKisaLove/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/uri/rfc2396_parser.rb:305:in `escape'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:32:in `escape'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:114:in `block (2 levels) in normalized_params'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:114:in `collect'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:114:in `block in normalized_params'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:114:in `collect'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:114:in `normalized_params'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:110:in `signature_base'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:101:in `hmac_sha1_signature'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:97:in `signature'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:77:in `signed_attributes'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:83:in `normalized_attributes'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/simple_oauth-0.3.1/lib/simple_oauth/header.rb:65:in `to_s'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/headers.rb:39:in `auth_header'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/headers.rb:30:in `request_headers'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/rest/request.rb:62:in `set_multipart_options!'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/rest/request.rb:28:in `initialize'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/rest/utils.rb:50:in `new'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/rest/utils.rb:50:in `perform_request'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/rest/utils.rb:72:in `perform_request_with_object'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/rest/utils.rb:64:in `perform_post_with_object'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/rest/tweets.rb:155:in `update!'
| /Users/DekaKisaLove/.rvm/gems/ruby-2.6.1@closedwon/gems/twitter-6.2.0/lib/twitter/rest/tweets.rb:126:in `update'
rfc2396_解析器。rb:308
def escape(str, unsafe = @regexp[:UNSAFE])
unless unsafe.kind_of?(Regexp)
# perhaps unsafe is String object
unsafe = Regexp.new("[#{Regexp.quote(unsafe)}]", false)
end
str.gsub(unsafe) do
us = $&
tmp = ''
us.each_byte do |uc|
tmp << sprintf('%%%02X', uc)
end
tmp
end.force_encoding(Encoding::US_ASCII)
end
非常抱歉,问题出在tweet_文本中-它不能有特殊符号。我希望有一天这能帮助别人。。。我花了4个小时。这里没有对每个_字节的引用,所以您可能需要进一步挖掘。@tadman这是日志中每个_字节的唯一引用=cmd+f,只出现在错误消息中。它在第308行的rfc2396_parser.rb文件中。@tadman补充了这个问题
def escape(str, unsafe = @regexp[:UNSAFE])
unless unsafe.kind_of?(Regexp)
# perhaps unsafe is String object
unsafe = Regexp.new("[#{Regexp.quote(unsafe)}]", false)
end
str.gsub(unsafe) do
us = $&
tmp = ''
us.each_byte do |uc|
tmp << sprintf('%%%02X', uc)
end
tmp
end.force_encoding(Encoding::US_ASCII)
end