2014-03-25 76 views
0

的sitemap_generator寶石成功創建並上傳了靜態網頁應用程序的一個Amazon S3的桶站點地圖。獲取西納特拉和sitemap_gererator寶石一起玩很好

現在我想指示寶石包括我的文章模型中的每篇文章動態

這是我的錯誤:

rake aborted! 
wrong constant name #<Class:0x007f80d5858b00> 

所以,僅僅是明確的,我遇到的唯一問題是試圖讓sitemap_generator寶石與物品模型發揮很好。

我使用下面的寶石版本:
的Ruby 1.9.3
西納特拉v 1.4.4
西納特拉,ActiveRecord的1.5
sitemap_generator 5.0.1

配置/ 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

我只是不得不添加Class ::之前聲明一個d使用文章類。

更新代碼:

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