我的問題與此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來自哪裏,爲什麼?