我已经整合了friendly_id gem和globalize,如果我在特定语言环境中翻译了slug,它的效果会很好。
但我想要实现的是对slug使用默认翻译,以防某些语言环境在翻译表中丢失。
因此,假设我有一个主要的语言环境MA,其中填充了slug并且我有一个EN语言环境,它缺少了。如果我要去EN版本,我想看看slu版的MA版本。
有办法怎么做?
谢谢,Miroslav
答案 0 :(得分:1)
我最终通过编写应用程序帮助程序方法(其他解决方案对我不起作用)来解决这个问题。希望它会帮助某人。如果产品不存在翻译,它将使用主翻译(默认情况下在产品创建时创建),否则使用当前区域设置版本。
# application_helper.rb
def product_url(product)
if product.translations.pluck(:locale).include?(I18n.locale.to_s)
admin_translations_product_path(product)
else
I18n.with_locale(:ma) { admin_translations_product_path(product) }
end
end
# index.html.erb
<%= link_to "#{t :button_admin_edit} #{locale.to_s.upcase}", product_url(product) %>
答案 1 :(得分:0)
我相信如果你使用这个附加宝石进行友好和全球化,这是为你处理的:https://github.com/norman/friendly_id-globalize/blob/master/README.md
它处理默认语言环境。我只是将您推荐给文档,但希望能够做到这一点。