1

我正在尝试自动生成一个链接列表,这些链接指向其中包含某些主要内容的页面,但每次我尝试使用sitemap.where()时,我都会得到一个NoMethodError. 例如,以下行:

 <%= 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. 是否有解决方案或其他方式可以查询所有页面?

4

1 回答 1

3

where方法是 ActiveRecord 的一部分,在 Middleman 中可能不起作用。

要仅获取站点地图中具有特定属性的页面,您可以使用 Ruby 的select

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

此代码将打印(非常基本的)与您的条件匹配的页面的 URL 列表。

于 2016-11-15T23:37:44.960 回答