Rails sitemap_generator未初始化常量?

时间:2012-05-31 00:36:23

标签: ruby-on-rails ruby sitemap

我正在尝试使用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:在`block in'中:未初始化的常量   SitemapGenerator :: Interpreter :: Product(NameError)

然而,“Product”是我的模型的正确名称。为什么会这样?

我正在运行Rails 3.1.2和Ruby 1.9。

2 个答案:

答案 0 :(得分:14)

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

require 'rubygems'
require 'sitemap_generator'

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

rake sitemap:refresh:no_ping

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

答案 1 :(得分:0)

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

https://github.com/alexrabarts/big_sitemap