让sinatra和sitemap_generator gem一起很好地发挥作用



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

相关内容

最新更新