我有一个用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)。
答案 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