Ho il seguente filtro definito:Come simulare una ricerca di sottodominio nei test di Rails?
# 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 il sottodominio per un account fittizio che si carica prima di tutte le richieste utilizzando factory_girl
. Tuttavia, si tratta di un errore nullo dell'oggetto, dicendo che @request è nullo. 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?
Ho lo stesso problema, ha trovato una soluzione? – compostus
Utile per scoprire che stai usando request.subdomains per ottenere il sottodominio, ho usato per ottenerlo da params [: sottodominio] ma non funziona se ho impostato @ request.host o @ request.env ['HTTP_HOST'] –