成功的sitemap_generator gem创建并将应用的静态页面的站点地图上传到Amazon S3存储桶。
现在,我想指示宝石包含我的文章模型动态中的每篇文章。
这是我得到的错误:
rake aborted!
wrong constant name #<Class:0x007f80d5858b00>
所以,为了清楚起见,我唯一的问题是尝试让sitemap_generator gem与文章模型很好地配合。
我使用以下宝石版本:
Ruby 1.9.3
Sinatra v 1.4.4
sinatra-activerecord 1.5
sitemap_generator 5.0.1
config / sitemap.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
答案 0 :(得分:0)
在声明和使用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