Domanda

Ho il seguente filtro definito:

# application_controller.rb
class ApplicationController < ActionController::Base
  before_filter :find_account

  private

    def find_account
      @current_account = Account.find_by_subdomain!(request.subdomains.first)
    end
end

e nel mio test:

# users_controller_test.rb
class UsersControllerTest < ActionController::TestCase
  setup do
    @request.host = "test.myapp.local"
  end
  # ...
end

Ora test è definito come sottodominio di un account fittizio che carico prima di tutte le richieste utilizzando factory_girl . Tuttavia, questo genera un errore oggetto nullo, dicendo che @request è zero. La rimozione del blocco di installazione causa il fallimento di tutti i miei test poiché find_account non riesce a trovare un account e pertanto genera un errore RecordNotFound .

Cosa sto sbagliando?

È stato utile?

Soluzione

Prova questo:

@request.env['HTTP_HOST'] = 'test.myapp.local'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top