中间人 sitemap.where 不存在
Middleman sitemap.where doesn't exist
我试图自动生成一个链接列表,这些链接指向其中包含某些前言的页面,但每次我尝试使用 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
时遇到了同样的问题。是否有解决此问题或其他方法可以查询所有页面的方法?
where
方法是 ActiveRecord 的一部分,可能无法在 Middleman 中使用。
要仅获取站点地图中具有特定 属性 的页面,您可以使用 Ruby 的 select
:
<% sitemap.resources.select{|p| p.data.title == 'about'}.each do |page| %>
<%= page.url %>
<% end %>
此代码将打印(非常基本的)符合您条件的网页的 URL 列表。
我试图自动生成一个链接列表,这些链接指向其中包含某些前言的页面,但每次我尝试使用 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
时遇到了同样的问题。是否有解决此问题或其他方法可以查询所有页面的方法?
where
方法是 ActiveRecord 的一部分,可能无法在 Middleman 中使用。
要仅获取站点地图中具有特定 属性 的页面,您可以使用 Ruby 的 select
:
<% sitemap.resources.select{|p| p.data.title == 'about'}.each do |page| %>
<%= page.url %>
<% end %>
此代码将打印(非常基本的)符合您条件的网页的 URL 列表。