2012-05-31 122 views
4

我正在嘗試使用Rails站點map_generator gem來爲8,000,00頁的站點生成站點地圖。寶石可以在這裏找到:https://github.com/kjvarga/sitemap_generatorRails 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。

回答

0

那麼,我無法得到這個寶石的工作。我的猜測是,它不適用於Rails 3.1.2或Ruby 1.9。但是,我能夠獲得另一個gem(big_sitemap)的工作。這是它的鏈接。

https://github.com/alexrabarts/big_sitemap

12

我是寶石的作者。最好在將來在GitHub頁面上打開一個問題。 SitemapGenerator可以在Rails 3和Ruby 1.9中使用。*。如果你正在運行的Rails,你不需要這些行:

require 'rubygems' 
require 'sitemap_generator' 

另外你生成您的站點地圖運行耙:

rake sitemap:refresh:no_ping 

什麼你的情況正在發生的事情是,因爲你不通過Rake運行,腳本不知道Product類,因爲您的Rails環境尚未加載。