Ruby on Rails:'不显示所有这些页面'的条件

时间:2017-08-04 14:46:13

标签: ruby-on-rails path conditional

我是Ruby on Rails的新手,我很难搞清楚如何不在多个页面上显示div。目前,我只能为一个页面进行以下工作:

<% if signed_in? %>
  <% unless current_page?(account_setup_path) %>
   <!--job seeker options-->
        <% if current_user.job_seeker? %>

        test

        <% end %>
      <!--end job seeker options-->

      <!--employer options-->
        <% if current_user.employer? %>

        <% end %>
      <!--end employer options-->
  <% end %>
<% end %>

任何帮助将不胜感激!提前谢谢!

1 个答案:

答案 0 :(得分:1)

由于您希望div不显示在多个页面上,因此您有多个选项。首先,如果div仅用于在具有特定控制器的页面上显示,则您需要将该div移动到部分并从所有关联视图引用它。如果您只想在一个页面上显示,则应将其直接放在视图中。如果您需要在您的应用程序的几个不同页面上显示它。你可以简单地检查params哈希中的控制器是否匹配。例如:

#I want this div shown on any pages handled by my `Admins` and `Users` controllers.

<% if params[:controller] == 'admins' || params[:controller] == 'users' %>
    div here
<% end %>

这会增加维护的开销,所以你应该认真考虑这个div是在部分视图,特定视图还是布局/应用程序文件等中。