Je souhaite faire une redirection vers index.html dans mon dossier application/public.
def get_current_user
@current_user = current_user
if @current_user.nil?
redirect_to root_path
end
end
Comment puis-je y parvenir?
Je n'ai pas modifié la racine dans mes routes.rb (c'est toujours commenté)
# root :to => "welcome#index"
Je reçois une erreur indiquant que root_path n'est pas défini.
Comment modifier routes.rb pour que root_path pointe vers public/index.html?
Ce que vous voulez faire n'est pas Rails compatible.
Rails est MVC, C pour le contrôleur, V pour la vue.
Ses internes ont donc besoin des deux.
Ok, public/index.html
Est affiché par défaut mais c'est juste parce que le processus est contourné.
Ainsi, vous pouvez créer un contrôleur static
avec une action index
et sa vue correspondante (copiez/collez simplement le contenu de votre fichier public/index.html
Actuel).
Réglez ensuite:
root :to => "static#index"
Et s'il vous plaît, supprimez le fichier public/index.html
:)
Vous pouvez affecter une route nommée à un fichier statique en passant n'importe quelle chaîne non vide comme :controller
et le chemin d'accès au fichier en tant que :action
pour l'itinéraire:
Application.routes.draw do
root :controller => 'static', :action => '/'
# or
# root :controller => 'static', :action => '/public/index.html'
end
# elsewhere
redirect_to root_path # redirect to /
En supposant que vous avez un public/index.html
, c'est ce qui sera servi.
sur le contrôleur
redirect_to root_path (will redirect to root '/')
fichier d'itinéraire:
root 'main#index'
manette:
class MainController < ApplicationController
def index
redirect_to '/index.html'
end
end
et en utilisant Rails 4 action du contrôleur en direct cela peut se comporter comme une application d'une seule page utilisant le M & C avec une torsion sur le V