2012-05-31 6 views
4

Я пытаюсь использовать Rails site map_generator gem для создания карт сайта для сайта с 8000,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. Тем не менее, я смог получить еще один драгоценный камень (big_sitemap) для работы. Вот ссылка на него.

https://github.com/alexrabarts/big_sitemap

12

Я автор драгоценного камня. Лучше открыть проблему на странице GitHub в будущем. SitemapGenerator работает в Rails 3 и Ruby 1.9. *. Если вы работаете в Rails, вам не нужны эти строки:

require 'rubygems' 
require 'sitemap_generator' 

Также можно создавать свои сайтмепов, запустив Rake:

rake sitemap:refresh:no_ping 

Что происходит в вашем случае является то, что потому, что вы не проходящий через Rake, сценарий не знает о классе Product, так как среда Rails не загружена.

Смежные вопросы