2

Railsでコーディングされた多言語サイトがあります。gemsitemap_generatorを使用してサイトマップを生成します。問題は、1つの言語の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、およびitロケールのURLを生成するにはどうすればよいですか?このコードでは、デフォルトのロケール(en)のみが生成されます。

4

2 に答える 2

3
[: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
于 2012-06-23T20:08:48.187 に答える
0

ロケールフィールドを:locale(文字列)のような製品モデルに保存することをお勧めします。その後、where条件を追加できます。

このような:

[:en, :es].each do |locale|
    Product.where(locale: locale).find_each do |product|
        #do something
    end
end
于 2019-08-07T07:18:18.913 に答える