en utilisant une méthode: layout_for_namespace Je définis la mise en page de mon application selon que je suis en frontend ou en backend, car le backend utilise un espace de noms "admin".Rails 3: Obtenir l'espace de noms actuel?
Je n'ai pas trouvé de moyen de trouver quel espace de noms je suis, la seule façon que j'ai trouvée est d'analyser la chaîne à partir de params [: controller]. Bien sûr que c'est facile, semble être sûr et fonctionne bien. Mais je me demande simplement s'il existe une meilleure façon de le faire. Est-ce que quelqu'un sait?
Actuellement, je suis juste en utilisant la méthode suivante:
def is_backend_namespace?
params[:controller].index("admin/") == 0
end
Merci à l'avance
Arne
Salut. Ce n'est pas ce que je voulais dire, désolé. Le nom du contrôleur est quelque chose d'autre, "admin" est l'espace de noms. C'est Admin :: MyController, alors params [: controller] donne "admin/my_controller" ou quelque chose, c'est à dire que je vérifie s'il s'agit de l'espace de noms admin. En utilisant controller_name, je devrais faire exactement la même chose, mais j'aimerais connaître le moyen de ne pas l'utiliser, mais de ne récupérer que l'espace de noms. – arnekolja
Ma faute, je n'ai pas lu la question de près. Vous indiquez clairement l'espace de noms et non le nom du contrôleur. Réponse mise à jour avec une alternative. – johnmcaliley
Plus simplement 'controller.class.name.start_with? ('Admin')'. –