2016-07-01 3 views
0

Я пытаюсь автоматически генерировать список ссылок на страницы, которые имеют определенную фронтмассивность в них, но каждый раз, когда я пытаюсь использовать sitemap.where(), я получаю NoMethodError. Например, следующая строка:Middleman sitemap.where не существует

<%= sitemap.where(:title=>"about") %> 

производит этот выход:

NoMethodError at/
undefined method `where' for #<Middleman::Sitemap::Store:0x007f9b95c7d890> 

Ruby layouts/layout.erb: in block in singleton class, line 20 
Web GET localhost/ 

Мне было интересно, если я случайно испортил что-то в моем проекте, поэтому я создал новый Middleman проект, но у меня был та же проблема, когда я пытался использовать sitemap.where. Есть ли решение по тому или иному пути, что я могу запросить все страницы?

ответ

2

Метод where является частью ActiveRecord и может не работать в Middleman.

Чтобы получить только те страницы в карте сайта, которые имеют особое свойство, вы можете использовать Руби select:

<% sitemap.resources.select{|p| p.data.title == 'about'}.each do |page| %> 
    <%= page.url %> 
<% end %> 

Этот код выведет (очень простой) список URL-адреса страниц, которые соответствуют критериям ,

 Смежные вопросы

  • Нет связанных вопросов^_^