1

J'utilise (entre autres):joyau sitemap_generator crée UrlGenerationError

gem 'rails', '4.0.0' 
gem 'sitemap_generator', '3.4' 
gem "friendly_id", "~> 5.0.3" 
gem 'globalize', '~> 4.0.2' 

générateur de site devrait créer urls à toutes mes images:

class Image < ActiveRecord::Base 
    attr_accessible :description, :name, :size, :image, 
        :tag_ids, etc... 

    has_many :taggings, :dependent => :destroy 
    has_many :tags, :through => :taggings 
    has_and_belongs_to_many :articles 
    mount_uploader :image, ImageUploader 
    extend FriendlyId 
    friendly_id :name, use: [:slugged, :history] 
    translates :name, :description 
end 

Mon générateur de sitemap fonctionne généralement bien, mais pas pour l'image modèle. Le code correspondant est:

[nil, :de].each do |locale| 
    Image.find_each do |image| 
    sitemap.add image_path(image), :changefreq => 'monthly' 
    end 
end 

Maintenant, quand je fais rake plan du site: rafraichissement no_ping

ActionController :: UrlGenerationError: Aucun résultat de l'itinéraire {: action => "show",: controller => "images ",: locale => #,: id => nil,: format => nil} clés manquantes manquantes: [: id]

Je pense que vous pourriez avoir besoin de plus d'informations pour aider ici, mais je n'ai aucune idée de quoi. Le site fonctionne bien dans les deux langues et rake: routes donne:

images GET (/:locale)/images(.:format)  images#index {:locale=>/en|de/} 
POST (/:locale)/images(.:format)    images#create {:locale=>/en|de/} 
new_image GET (/:locale)/images/new(.:format) images#new {:locale=>/en|de/} 
edit_image GET (/:locale)/images/:id/edit(.:format) images#edit {:locale=>/en|de/} 
image GET (/:locale)/images/:id(.:format) images#show {:locale=>/en|de/} 
PATCH (/:locale)/images/:id(.:format) images#update {:locale=>/en|de/} 
PUT (/:locale)/images/:id(.:format) images#update {:locale=>/en|de/} 
DELETE (/:locale)/images/:id(.:format) images#destroy {:locale=>/en|de/} 

Enfin mon routes.rb est:

scope "(:locale)", locale: /en|de/ do 
    resources :images do 
    get 'confirm_destroy', :on => :member 
    end 
end 

Répondre

0

Génération d'un SiteMap est très simple Voici les choses que vous devez savoir

1) routes

#config/routes.rb 
    get 'sitemap.xml', :to => 'sitemap#index', :defaults => {:format => 'xml'} 
    root '...' 

2) contrôleur

#app/controllers/sitemap_controller.rb 
class SitemapController < ApplicationController 
    layout nil 
    def index 
    headers['Content-Type'] = 'application/xml' 
    respond_to do |format| 
     format.xml { 
     @images = Image.all 
     } 
    end 
    end 
end 

3) la vue maintenant j'utilisé haml

#app/views/sitemap/index.xml.haml 
!!! XML 
%urlset{:xmlns => "http://www.sitemaps.org/schemas/sitemap/0.9"} 
    - @images.each do |image| 
    %url 
     %loC#{image_url(image)} 
     %lastmod=image.updated_at.strftime('%Y-%m-%d') 
     %changefreq weekly 
     %priority 0.5 

Il n'y a rien d'autre à créer un plan du site

J'espère que cette aide :)

+0

Merci, je vais essayer ... semble simple :-) – user929062

0

problème était que je devais passer les paramètres régionaux dans mon sitemap.rb. Ainsi, le code correct dans sitemap.rb est:

image = Image.all 

[nil, :de].each do |locale| 
    image.find_each do |image| 
    sitemap.add image_path(image, :locale => locale) 
    end 
end