我的问题与此Rails friendly id with non-Latin characters密切相关。按照那里的建议答案,我实现了一点点不同的解决方案(我知道,这是很原始的,但我只是想确保它在添加复杂行为之前能够正常工作)。Rails friendly_id with arabic slug
以我的用户模型我有:
extend FriendlyId
friendly_id :slug_candidates, :use => [:slugged]
def slug_candidates
[
[:first_name, :last_name],
[:first_name, :last_name, :uid]
]
end
def should_generate_new_friendly_id?
first_name_changed? || last_name_changed? || uid_changed? || super
end
def normalize_friendly_id(value)
ERB::Util.url_encode(value.to_s.gsub("\s","-"))
end
现在
当我提交 “مرحبا” 为:通过浏览器如first_name,蛞蝓值被设定为“%D9%85%D8%B1%D8%AD %D8%A8%D8%A7-“,这是我所期望的(除了尾部的” - “)。
但浏览器中显示的网址如下所示:http://localhost:3000/en/users/%25D9%2585%25D8%25B1%25D8%25AD%25D8%25A8%25D8%25A7-,这不是我想要的。有谁知道这些额外的%25来自哪里,为什么?