除了教授#show之外,我想为所有页面显示一个div。
所以我认为我可以在applicait.html.erb中添加一个除非声明我开始使用这样的东西:
<% unless current_page?(controller: "professors", action: "show") %>
<div class="center-block">
<% end %>
这适用于show动作,但当用户导航到另一个页面时,网站会因此错误而崩溃:
No route matches {:action=>"show", :controller=>"professors"}
<% unless current_page?(controller: 'professors', action: 'show', id: @professor.id) %>
<div class="center-block ">
<% end %>
这在show动作中再次起作用,但在任何其他页面上都会出现此错误:
undefined method `id' for nil:NilClass
我认为问题是什么,我认为,除了教授#show @ professor.id意味着什么,但我不知道如何解决它。我甚至不确定我是否会以正确的方式进行此操作,请记住我的最终目标是在所有页面上显示中心区块div,除了显示特定教授的页面。
答案 0 :(得分:2)
尝试从params
获取操作和控制器名称的值<% unless params[:action] == 'show' && params[:controller] == 'professors' %>
<div class="center-block ">
<% end %>