首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >检查当前设计的操作和视图

检查当前设计的操作和视图
EN

Stack Overflow用户
提问于 2018-02-22 14:59:20
回答 3查看 1.8K关注 0票数 4

我在我的rails应用程序中使用devise gem进行身份验证。我希望能够隐藏我的导航栏部分,如果用户是在一个特定的设计动作和视图。例如,如果用户当前使用的是devise sessions new,我想隐藏部分导航栏。我该如何做到这一点呢?

提前谢谢你!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-22 16:05:23

您可以使用devise_controller?帮助器。Docs

代码语言:javascript
运行
AI代码解释
复制
<%= if devise_controller? %>
  <!-- show partial -->
<% end %>

如果要检查特定的控制器,请使用request.controller

代码语言:javascript
运行
AI代码解释
复制
<%= if request.controller == 'devise/registrations' %>
  <!-- show partial -->
<% end %>
票数 5
EN

Stack Overflow用户

发布于 2018-02-22 16:01:13

您可以使用:

代码语言:javascript
运行
AI代码解释
复制
<%= controller.name %>
<%= controller.action_name %>

此外,还有:

代码语言:javascript
运行
AI代码解释
复制
<%= ActionController::Routing::Routes.recognize_path(request.url)[:id] %>

上面的所有结构都让你知道你现在在视图/partial中路由的位置。就我个人而言,我建议你使用它,但如果你应该呈现导航栏,那么你可以定义映射和条件获取的帮助程序中的逻辑。

票数 2
EN

Stack Overflow用户

发布于 2018-02-22 15:34:57

代码语言:javascript
运行
AI代码解释
复制
 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

代码语言:javascript
运行
AI代码解释
复制
        show user navbar in this folder

_nav.guest.html.erb

代码语言:javascript
运行
AI代码解释
复制
           show guest navbar in this folder
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48930548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档