przy użyciu metody: layout_for_namespace Ustawiam układ mojej aplikacji w zależności od tego, czy znajduję się w interfejsie, czy backendie, ponieważ backend używa przestrzeni nazw "admin".Szyny 3: Uzyskaj bieżący obszar nazw?
Nie mogłem znaleźć ładnego sposobu, aby dowiedzieć się, który obszar nazw jestem, jedynym sposobem, jaki znalazłem, jest parsowanie łańcucha znaków z parametrów [: controller]. Oczywiście, że to proste, wydaje się być bezpieczne i działa dobrze. Ale zastanawiam się, czy istnieje lepszy, przygotowany sposób na zrobienie tego. Czy ktoś wie?
Obecnie jestem po prostu stosując następującą metodę:
def is_backend_namespace?
params[:controller].index("admin/") == 0
end
góry dziękuję
Arne
cześć. Nie o to mi chodziło, przepraszam. Nazwa kontrolera to coś innego, "admin" to przestrzeń nazw. To jest Admin :: MyController, więc params [: kontroler] daje "admin/my_controller" lub coś takiego, to tam sprawdzam, czy jest to obszar nazw administratora. Używając control_name, musiałbym zrobić to samo, ale chciałbym poznać sposób, żeby _parse_ nie odzyskać tylko przestrzeni nazw. – arnekolja
Moja wina, nie przeczytałem dokładnie tego pytania. Jasno określasz przestrzeń nazw, a nie nazwę kontrolera. Odpowiedź została zaktualizowana za pomocą alternatywy. – johnmcaliley
Po prostu "controller.class.name.start_with? ('Admin')'. –