Ruby on rails 使用Desive关闭部分应用程序布局

Ruby on rails 使用Desive关闭部分应用程序布局,ruby-on-rails,devise,Ruby On Rails,Devise,我已经在布局应用程序中创建了一个侧菜单,但我不想在登录页面上显示它,但我想查看布局应用程序的其余部分 这是我不想在登录页面中显示的部分 <% if is_a?(Devise::SessionsController) %> <div class="col-sm-3" style = "position: relative;"> <!-- left --> <h3><i class="glyphicon glyphic

我已经在布局应用程序中创建了一个侧菜单,但我不想在登录页面上显示它,但我想查看布局应用程序的其余部分

这是我不想在登录页面中显示的部分

<% if is_a?(Devise::SessionsController) %>
  <div class="col-sm-3" style = "position: relative;">
      <!-- left -->
      <h3><i class="glyphicon glyphicon-list"></i> Menu</h3>
      <hr>

      <ul class="nav nav-stacked">
        <li><a href="javascript:;"><i class="glyphicon glyphicon-search"></i> Pesquisar</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-link"></i> Links</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-list-alt"></i> Reports</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-book"></i> Books</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-briefcase"></i> Tools</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-time"></i> Real-time</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicons-heart"></i> Advanced..</a></li>
      </ul>

      <hr>

    </div><!-- /span-3 -->

菜单



但是这个命令关闭了我所有页面中的这部分代码,那么我如何指定这只是我的用户/sign_in页面?

您可以通过测试控制器和操作来隐藏您的
layouts/application.html.erb
文件描述的UI部分

在Rails 4中,您可以访问视图中的
controller\u name
action\u name
帮助程序。您可以向
应用程序.html.erb
添加逻辑,如下所示:

<% !(if controller_name == 'devise/sessions' && action_name == 'new') %>
    <div class="col-sm-3" style = "position: relative;">
      <!-- left -->
      <h3><i class="glyphicon glyphicon-list"></i> Menu</h3>
      <hr>

      <ul class="nav nav-stacked">
        <li><a href="javascript:;"><i class="glyphicon glyphicon-search"></i> Pesquisar</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-link"></i> Links</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-list-alt"></i> Reports</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-book"></i> Books</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-briefcase"></i> Tools</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicon-time"></i> Real-time</a></li>
        <li><a href="javascript:;"><i class="glyphicon glyphicons-heart"></i> Advanced..</a></li>
      </ul>

      <hr>

    </div>
<% end %>

菜单


除了“设计登录”页面外,您的侧边栏应显示其他内容

另一种方法是将
application.html.erb
的元素移动到登录页面并使用:

render:layout=>false


在您的控制器中,禁止显示布局目录中的内容。

如果我理解正确,您希望仅向登录用户显示此部分。这就是你能做的:

在控制器中应该有一个当前用户。因此,替换

<% if is_a?(Devise::SessionsController) %>



基本上,这应该已经在控制器中完成,然后选择正确的视图。但是现在可能会有帮助。

我没有表达好,我不想在我的登录页面中看到这部分代码,不管用户是否登录。对不起,你表达得正确--我只是没有仔细阅读。我没有表达好,我不想在我的登录页面中看到这部分代码,不管用户是否登录。你能说这部分代码的具体条件是什么吗?如果你不想看到它,总是有可能简单地删除它!这是Rails 4还是更早的版本?
<% if !current_user %>