我在我的Rails 3.2.14应用中使用 friendly_id(4.10.1)和 globalize(3.0.0):
# globalize3
translates :title, :slug
# friendly_id
extend FriendlyId
friendly_id :title, use: [:slugged, :globalize]
当我保存输入时,friendly_id会检查slug碰撞:
SELECT "pages".* FROM "pages" WHERE
("slug" = 'my-title' OR "slug" LIKE 'my-title--%') AND (id <> 1)
ORDER BY LENGTH("slug") DESC, "slug" DESC LIMIT 1
Friendly_id应该使用转换表page_translations
,因为当您使用多个语言环境时,原始表pages
中的条目有点随机。
这就是问题所在:friendly_id只识别一种语言/区域设置的slug碰撞。
有没有人知道如何更改完整全球化支持的查询?非常感谢你提前!