Ruby on rails 如果在多个页面(Rails)之一上,则包含html片段

Ruby on rails 如果在多个页面(Rails)之一上,则包含html片段,ruby-on-rails,Ruby On Rails,目前,我有一个非常标准的Rails 4应用程序,它有许多静态页面(主页、关于、联系人等)以及数据库支持的页面。我想包括一个html部分在大多数网站,但不是在静态页面(除了主页)。如果我只声明了一个要排除的页面(例如“关于”页面),我可以使用以下方法实现此功能: <% if !current_page?(about_url) %> include the partial <% end %> 包括部分 我不确定如何编写此文件以获得url列表,即关于url、联系ur

目前,我有一个非常标准的Rails 4应用程序,它有许多静态页面(主页、关于、联系人等)以及数据库支持的页面。我想包括一个html部分在大多数网站,但不是在静态页面(除了主页)。如果我只声明了一个要排除的页面(例如“关于”页面),我可以使用以下方法实现此功能:

<% if !current_page?(about_url) %>
   include the partial
<% end %>

包括部分
我不确定如何编写此文件以获得url列表,即关于url、联系url等。我尝试了以下方法:

<% if [about_url, contact_url, ...].!include? current_page 

您可以通过多种方式进行此操作,其中之一可以是:

<% if current_page?(controller: 'YOUR_CONTROLLER_NAME') && 
      (current_page?(action: 'about') || current_page?(action: 'contact') || ... ) %>
    include partial
<% end %>

包括部分

我认为应该可以,但你的语法不正确

<% if [about_url, contact_url, ...].!include? current_page 

好的,多亏了这些评论者,我用以下方法实现了它:

<% if not [about_path, contact_path].include? request.path %>
  <%= render 'layouts/minibar' %>
<% end %>


**要点是使用*\u path与request.path进行比较。

“当前页面”是一个帮助程序,用于检查当前url是否由给定的选项生成。我不认为“当前页面”函数/助手存在,除非用户明确定义了它。是的,我刚刚意识到我的错误。Rails中是否有办法获取当前URL,即我可以直接与数组中的URL进行比较的URL?我刚刚更新了语法(请参阅主帖子中的更新),但仍然没有用。@VageeshBhasin我只是假设,由于GerryDevine使用了该变量,所以他在早些时候定义了它。实际上是的,这就是我刚刚意识到的,我现在正试图把它提取到一个助手中。嗨,Vageesh,我希望避免你制定的冗长策略。如果我什么都做不到,我会回到这个话题上。谢谢。请尝试request.full_path和/或request.path而不是request.original_urlrequest_path!但我还需要在数组中使用about_path、contact_path,而不是about_url等。我将发布完整的解决方案作为答案。谢谢你的帮助
<% if not [about_url, contact_url, ...].include? current_page 
<% if ![about_url, contact_url, ...].include? current_page 
<% if not [about_path, contact_path].include? request.path %>
  <%= render 'layouts/minibar' %>
<% end %>