Rails sitemap_generator未初始化常量?

我正在尝试使用Rails站点map_generator gem为8,000,00页面站点生成站点地图。 gem可以在这里找到: 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。

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

 require 'rubygems' require 'sitemap_generator' 

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

 rake sitemap:refresh:no_ping 

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

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

https://github.com/alexrabarts/big_sitemap