我正在尝试使用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。
答案 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)。这是它的链接。