检查当前的设计操作和视图
Check if current devise action and view
我在 rails 应用程序中使用设计 gem 进行身份验证。如果用户正在进行特定的设计操作和视图,我希望能够隐藏我的部分导航栏。例如,如果用户当前处于新的设计会话中,我想隐藏我的导航栏部分。我将如何做到这一点?
提前致谢!
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
您可以使用:
<%= controller.name %>
<%= controller.action_name %>
还有:
<%= ActionController::Routing::Routes.recognize_path(request.url)[:id] %>
上面的所有结构让您知道您现在在 view/partial 的路由方式中的位置。就个人而言,我建议您使用它,但是将逻辑从帮助器中的视图中取出,您可以在其中定义映射和条件以获取是否应该呈现导航栏。
您可以使用 devise_controller?
助手。 Docs
<%= if devise_controller? %>
<!-- show partial -->
<% end %>
如果要检查特定控制器,请使用 request.controller
<%= if request.controller == 'devise/registrations' %>
<!-- show partial -->
<% end %>
我在 rails 应用程序中使用设计 gem 进行身份验证。如果用户正在进行特定的设计操作和视图,我希望能够隐藏我的部分导航栏。例如,如果用户当前处于新的设计会话中,我想隐藏我的导航栏部分。我将如何做到这一点?
提前致谢!
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
您可以使用:
<%= controller.name %>
<%= controller.action_name %>
还有:
<%= ActionController::Routing::Routes.recognize_path(request.url)[:id] %>
上面的所有结构让您知道您现在在 view/partial 的路由方式中的位置。就个人而言,我建议您使用它,但是将逻辑从帮助器中的视图中取出,您可以在其中定义映射和条件以获取是否应该呈现导航栏。
您可以使用 devise_controller?
助手。 Docs
<%= if devise_controller? %>
<!-- show partial -->
<% end %>
如果要检查特定控制器,请使用 request.controller
<%= if request.controller == 'devise/registrations' %>
<!-- show partial -->
<% end %>