sitemap_generator gem to 成功为应用程序的静态页面创建并上传了一个站点地图到Amazon S3桶。
现在我想指示gem动态地包含我的文章模型中的每一篇文章。
rake aborted!
wrong constant name #<Class:0x007f80d5858b00>
所以,只是为了清楚,我唯一的问题是试图让sitemap_generator gem与文章模型很好地发挥作用。
我使用以下gem版本:
Ruby 1.9.3
Sinatra v 1.4.4
sinatra-activerecord 1.5
sitemap_generator 5.0.1
配置/网站地图。rb:
require 'rubygems'
require 'sinatra'
require 'sinatra/base'
require 'sinatra/activerecord'
require './config/environments'
require 'sitemap_generator'
require 'carrierwave'
require './config/initializers/carrierwave'
class Article < ActiveRecord::Base
end
SitemapGenerator::Sitemap.default_host = "http://www.mywebsite.com"
SitemapGenerator::Sitemap.public_path = 'tmp/'
SitemapGenerator::Sitemap.adapter = SitemapGenerator::WaveAdapter.new
SitemapGenerator::Sitemap.sitemaps_host = "http://#{ENV['S3_BUCKET']}.s3.amazonaws.com/"
SitemapGenerator::Sitemap.sitemaps_path = 'sitemaps/'
SitemapGenerator::Sitemap.create do
# This part WORKS.
add '/company', :changefreq => 'weekly', :priority => 0.9
add '/team', :changefreq => 'weekly', :priority => 0.9
add '/services', :changefreq => 'weekly', :priority => 0.9
add '/blog', :changefreq => 'weekly', :priority => 0.9
add '/contact', :changefreq => 'weekly', :priority => 0.9
# This part DOESN'T work.
Article.find_each do |article|
add "/blog/#{article.url}", :lastmod => article.updated_at
end
end
我只需要在声明和使用Article类之前添加class::。
更新代码:
class Class::Article < ActiveRecord::Base
end
SitemapGenerator::Sitemap.create do
Class::Article.find_each do |article|
add "/blog/#{article.url}", :lastmod => article.updated_at
end
end