2

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

这是我的站点地图.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 和它的语言环境生成 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 (string),然后您可以添加 where 条件。

像这样:

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