Überprüfen Sie, ob aktuelle Aktion und Ansicht - Ruby-on-Rails, Ruby, Devise

Ich benutze das Gerät Juwel für die Authentifizierung inMeine Schienen App. Ich möchte in der Lage sein, meine Navigationsleiste teilweise zu verbergen, wenn sich der Benutzer auf einer bestimmten Geräteaktion und -ansicht befindet. Wenn der Benutzer z. B. gerade in neuen Sitzungen arbeitet, möchte ich meine Navigationsleiste teilweise ausblenden. Wie würde ich das erreichen?

Vielen Dank im Voraus!

Antworten:

2 für die Antwort № 1

Sie können verwenden devise_controller? Helfer. Dokumente

<%= if devise_controller? %>
<!-- show partial -->
<% end %>

Wenn Sie einen bestimmten Controller steuern möchten, verwenden Sie request.controller

<%= if request.controller == "devise/registrations" %>
<!-- show partial -->
<% end %>

2 für die Antwort № 2

Sie können verwenden:

<%= controller.name %>
<%= controller.action_name %>

Außerdem gibt es:

<%= ActionController::Routing::Routes.recognize_path(request.url)[:id] %>

Alle Strukturen oben lassen Sie wissen, wo Sie sindjetzt in den Mitteln, von der Ansicht / teilweise zu routen. Persönlich empfehle ich Ihnen, dies zu verwenden, aber nehmen Sie die Logik aus der Sicht in den Helper, wo Sie Mapping und bedingte festlegen können, um zu erhalten, wenn Sie navbar render.


1 für die Antwort № 3
 in layouts

it will control user and guest folder

_nav.html.erb

<% if !user_signed_in? %>
<%= render "/layouts/nav_guest" %>
<% else %>
<%= render "/layouts/nav_user"%>
<%end%>

_nav.user.html.erb

        show user navbar in this folder

_nav.guest.html.erb

           show guest navbar in this folder

Speisekarte