将sitemap_generator与不同的区域设置URL一起使用

时间:2012-06-23 18:35:03

标签: ruby-on-rails rubygems sitemap

我有一个用Rails编写的多语言网站。我使用gem sitemap_generator来生成站点地图。问题是我只生成一次语言的url。我使用params [:locale]更改网站的默认语言。

这是我的sitemap.rb

SitemapGenerator::Sitemap.default_host = "http://www.dominio.com"

SitemapGenerator::Sitemap.create do
     Product.find_each do |product|
       add url_for(:controller => 'products', :action => 'show', :id => product, :host => '', :only_path => true), :lastmod => product.updated_at
     end
end

如何为en,es和locales生成url?使用此代码,它仅生成默认语言环境(en)。

2 个答案:

答案 0 :(得分:2)

[:en, :es].each do |locale|
  Product.find_each do |product|
    add url_for(:controller => 'products', :action => 'show', :id => product, :host => '', :only_path => true, :locale => locale), :lastmod => product.updated_at
  end
end

答案 1 :(得分:0)

我建议将语言环境字段存储在产品模型中,例如:locale(字符串),然后可以在何处添加条件。

像这样:

[:en, :es].each do |locale|
    Product.where(locale: locale).find_each do |product|
        #do something
    end
end