2013-05-08 1 views
1

Я работаю над обновлением рельсов с 2.3.18 до 3.2.x, и у меня возникла проблема с этим набором тестов контроллера:undefined method relative_url_root для nil: NilClass при запуске rspec на контроллере с именами

ошибка:

/actionpack-3.2.12/lib/action_controller/test_case.rb:514:in `build_request_uri' 
/actionpack-3.2.12/lib/action_controller/test_case.rb:470:in `process' 
/actionpack-3.2.12/lib/action_controller/test_case.rb:49:in `process' 
/actionpack-3.2.12/lib/action_controller/test_case.rb:390:in `get' 
# ./spec/controllers/integrations/formstack_controller_spec.rb:104:in `block (3 levels) in <top (required)>' 

код ошибки запуска:

it "should handle a failed access_token retreival" do 
    FormStack::Oauth2Connection.any_instance.stub(:identify).and_return(nil) 
    get "oauth_token" # this line <---------------------------------------------------------------- 104 
    response.should redirect_to(:controller => "/integrations/", :action => :index) 
    flash[:error].should include("error") 
end 

маршруты для этого контроллера:

namespace :integrations, path: "/integrations" do 
    match "formstack/oauth_token", :to => "formstack#oauth_token" 
    resources :formstack 
end 

ничего особенного моего контроллера:

class Integrations::FormstackController < ApplicationController 
    def oauth_token 
     ... 
    end 
end 

так, что не это о

get "any_action_in_this_controller" 

вызывает эту ошибку relative_url_root? Каждый тест для каждого действия для этого контроллера вызывает ошибку.

какую еще информацию я могу дать, что поможет вам, ребята, помочь мне отладить это?

+0

То же самое, не могли бы вы заставить его работать? мой контроллер также именуется ... – Macario

+2

По-видимому, контроллер не может иметь действие с именем config, переименование действия решило проблему – Macario

ответ

3

Как отметил @marcario, если у вас есть:

def config 
    end 

в контроллере, вы получите это (неясный) ошибку. Просто переименуйте конфигурацию в что-то еще и сопоставление маршрутов, чтобы соответствовать, и вам хорошо идти.

+0

Я сам это обнаружил давно. Спасибо, что ответили! надеюсь, что другие не будут разочарованы, как я. ha – NullVoxPopuli

+0

Это странно. Все еще работает с 26 июля 2016 года. Спасибо – luispcosta