Включая частичные, если не указаны конкретные классы страниц

Я добавляю уникальный класс страницы в тег body каждой страницы через layout.erb. Я хочу включить частичный фрагмент на все страницы моего сайта, кроме нескольких. Не все страницы имеют набор классов. В настоящее время я получаю синтаксическую ошибку в приведенном ниже примере.

<%= 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 << ' ... ^


person Patrick Rogers    schedule 01.02.2016    source источник
comment
Можете ли вы опубликовать отображаемое сообщение об ошибке?   -  person Jeremy Rajan    schedule 01.02.2016
comment
Добавлено в исходный пост.   -  person Patrick Rogers    schedule 01.02.2016


Ответы (2)


Один простой вариант, который должен работать, заключается в следующем:

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

Я считаю, что вам нужна функция 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)) %>
person TJR    schedule 01.02.2016