5

我正在尝试使用 Rails 站点 map_generator gem 为 8,000,00 页站点生成站点地图。宝石可以在这里找到:https ://github.com/kjvarga/sitemap_generator

这是我在 sitemap.rb 中的代码:

require 'rubygems'
require 'sitemap_generator'

# Set the host name for URL creation
SitemapGenerator::Sitemap.default_host = "http://www.mysite.com"

SitemapGenerator::Sitemap.create do
  add '/content.aspx?page=privacypolicy'
  Product.find_each do |product|
    add product_path(ppid), :lastmod => content.updated_at
  end
end

但是,当我跑步时

>> ruby sitemap.rb  

我收到一条错误消息:

sitemap.rb:9:in `block in': 未初始化的常量 SitemapGenerator::Interpreter::Product (NameError)

但是“产品”是我模型的正确名称。为什么会这样?

我正在运行 Rails 3.1.2 和 Ruby 1.9。

4

2 回答 2

16

我是宝石的作者。以后最好在 GitHub 页面上打开一个问题。SitemapGenerator 在 Rails 3 和 Ruby 1.9.* 中工作。如果您正在运行 Rails,则不需要这些行:

require 'rubygems'
require 'sitemap_generator'

您还可以通过运行 Rake 生成站点地图:

rake sitemap:refresh:no_ping

在您的情况下发生的情况是,由于您没有通过 Rake 运行,因此脚本不知道 Product 类,因为您的 Rails 环境尚未加载。

于 2013-05-02T22:41:23.997 回答
0

好吧,我无法让这个宝石工作。我的猜测是它不适用于 Rails 3.1.2 或 Ruby 1.9。但是,我能够让另一个 gem (big_sitemap) 工作。这是它的链接。

https://github.com/alexrabarts/big_sitemap

于 2012-05-31T19:53:26.127 回答