包括部分除非特定页面 类

Including partial unless specific page classes

我正在通过 layout.erb 添加一个独特的页面 class 到每个页面的 body 标签。我想在我网站上的所有页面中包含一个特定的部分,但只有少数页面。并非所有页面都有 class 集。目前我在下面的示例中遇到语法错误。

<%= partial 'partials/tagline' if (array.include?(current_page.data.page_classes) || array.empty? && %w(page_home page_fourohfour page_post)) %>

错误信息:SyntaxError at / layouts/layout.erb:3: syntax error, unexpected ')', expecting keyword_end ...e page_fourohfour page_post)) ).to_s; @_out_buf << ' ... ^

我相信您想要的函数是 render,它接受散列参数,而 partial 是该散列中的键之一(而不是函数本身)。

试试这个:

<%= render :partial => "partials/tagline" if (array.include?(current_page.data.page_classes) || array.empty? && %w(page_home page_fourohfour page_post)) %>

或者简单地说:

<%= render "partials/tagline" if (array.include?(current_page.data.page_classes) || array.empty? && %w(page_home page_fourohfour page_post)) %>

一个应该起作用的简单选项如下:

<% if (array.include?(current_page.data.page_classes) || array.empty? && %w(page_home page_fourohfour page_post)) %>
  <%= partial 'partials/tagline' %>
<% end %>