Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 nil:NilClass的未定义方法“downcase”_Ruby On Rails 3_Ruby On Rails 3.1_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 3 nil:NilClass的未定义方法“downcase”

Ruby on rails 3 nil:NilClass的未定义方法“downcase”,ruby-on-rails-3,ruby-on-rails-3.1,ruby-on-rails-3.2,Ruby On Rails 3,Ruby On Rails 3.1,Ruby On Rails 3.2,谁能告诉我我做错了什么,或者我可以做些什么不同的事 它基本上把这个错误抛到了底线上 @access\u token=@consumer.get\u access\u tokennil在我的客户机中如果您能更具体地说明您要做什么,那就太好了 这个错误是不言自明的。您正在为nil调用downcase:NilClass,因为您正在尝试为nil对象调用downcase…提供更多信息,我们将能够提供更好的帮助。我意识到这个问题是很久以前提出的,但我刚刚在测试套件中遇到这个问题。听起来很熟悉 我的错误是 d

谁能告诉我我做错了什么,或者我可以做些什么不同的事

它基本上把这个错误抛到了底线上


@access\u token=@consumer.get\u access\u tokennil在我的客户机中

如果您能更具体地说明您要做什么,那就太好了


这个错误是不言自明的。您正在为nil调用downcase:NilClass,因为您正在尝试为nil对象调用downcase…提供更多信息,我们将能够提供更好的帮助。

我意识到这个问题是很久以前提出的,但我刚刚在测试套件中遇到这个问题。听起来很熟悉

我的错误是

describe GameSystem::Client do

  def client
    GameSystem::Client.new(signature_method: 'HMAC-SHA1', oauth_key: 'kk', oauth_secret: 'bb', oauth_access_token_url: 'https:://localhost')
  end

  before :each do
    WebMock.reset!       
  end

  describe 'response' do

    context 'wrong path' do
      it 'raises JSON::ParserError on invalid return value' do
        stub_request(:get,"https://games.com/game_id/invalid_id").to_return(:status => 200, :body => 'invalid json', :headers => {})
        Rails.logger.info "#{client.games_by_id("invalid_id")}"
      end
    end
  end

end
事实证明,我使用的是移动设备fu,而我使用的是stubing is_mobile_设备?无存根也可移动设备。在这一过程中的某个地方,mobile fu试图将设备名降为零。通过为移动设备添加存根,事情就解决了。在规格中的before块中,我添加了:

Failure/Error: get :index
  ActionView::Template::Error:
    undefined method `downcase' for nil:NilClass

如果你不使用手机fu,你可能会有不同的问题。我能够通过pry和pry调试器跟踪实际问题。绝对值得研究的工具。

也许这个答案应该是一个评论。然而,问题仍然存在,他的代码一定是在某个地方对一个nil对象调用downcase…他从未提供方法get_access_token的代码,这可能就是downcase所在的地方。。。
controller.stub(:is_mobile_device? => true, :mobile_device => 'iphone')