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 %>