2017-02-25 11 views
0

Ich habe die anderen ähnlichen Fragen überprüft, und keine haben das gleiche Problem. Kurz nachdem ein Benutzer sich anmeldet, leitet meine App zum Root-Pfad um. Sollte einfach sein, aber aus irgendeinem Grund gibt redirect_to nicht die richtige URL zurück. Es funktioniert gut im Entwicklungsmodus. Ich versuche zu lernen, wie man den Produktionsmodus einrichtet. So habe ich eine kleine App mit nichts als einem Login/Logout an, grah.ddns.net Wenn ich einen redirect_to zum root_url ich Folgendes in das Adressfeld des Browsers erhalten:Rails redirect_to funktioniert nicht in der Produktion

"http://grah.ddns.net, grah .ddns.net "

Ich habe keine Ahnung, warum redirect_to eine solche Zeichenfolge zurückgeben würde.

Hier ist mein Controller-Code:

def login 
    user = User.find_by_name(params[:name]) 
    if user.present? 
    @user = user.authenticate(params[:password]) 
    if @user.present? 
     session[:userID] = @user.id 
     session[:userName] = params[:name] 
    end 
    end 
    // responds with "http://grah.ddns.net, grah.ddns.net 
    redirect_to root_url 

end 

def logout 
    session.delete(:userID) if session[:userID].present? 
    session.delete(:userName) if session[:userName].present? 
    // Which should I use root_path or root_url? 
    redirect_to root_path 
end 

und hier ist meine Routen-Datei:

Rails.application.routes.draw do 
    root 'main#index' 

    get 'main/index' 

    post 'session/login' 
    get 'session/logout' 

end 

ich hier nichts zu sehen, die dazu führen sollte, was ich erhalte. Das einzige, was ich aus der Ferne gefunden habe, ist:

config.consider_all_requests_local = false 

Was im Entwicklungsmodus gilt, und es funktioniert. Welchen Teil des Produktionsmodus vermisse ich ??? Halb versucht, einfach im Entwicklungsmodus zu laufen ... sheesh.

+0

Würden Sie bitte Ihre Routes-Datei teilen? –

+0

Routen-Datei zu Frage hinzufügen. – detrix42

Antwort

0

Verwenden Sie redirect_to root_path statt ur root_url. Es wird umgeleitet auf root 'Haupt # Index'

_URL ist besser für die Anzeige der URL zu externen Quellen. In deiner App funktioniert _PATH gut, da es bereits mit deiner aktuellen URL verknüpft ist. Keine Notwendigkeit zu wiederholen.

Der Pfad wird nur '/' zurückgeben, wobei die URL die volle URL zurückgibt.

0

Versuchen

root "main#index"

am Ende in route.rb Datei hinzuzufügen.

0

es scheint, dass mit

config.consider_all_requests_local = false 

alle redirect_to Aussagen vollqualifizierten Domain-Namen sein. Die Verwendung eines FQDN hat mein Problem behoben.

Verwandte Themen