Ric*_*piš 5 ruby-on-rails friendly-id
当我用韩文添加标题文章时,例如: ??
FriendlyID gem创建空白slug,url就像/8...所以这是ID.看看这个链接:http://www.srecipe.kr.com/articles/8
其他语言有效.
如何获取映射到拉丁字母的url,例如/ this-is-url ???
与所有这些永久链接解决方案一样,友好ID使用该parameterize方法将字符串转换为URL安全字符串.像这样:
require 'active_support/all'
puts "Oh Hai There".parameterize
=> oh-hai-there
Run Code Online (Sandbox Code Playgroud)
当您使用非ASCII字符串时会出现此问题,参数化替换为空字符串会导致您的问题:
# encoding: UTF-8
require 'active_support/all'
puts "??".parameterize
=>
Run Code Online (Sandbox Code Playgroud)
ActiveSupport提供了一种通过该transliterate方法将非ASCII字符串更改为近似近似值的方法.
# encoding: UTF-8
require 'active_support/all'
include ActiveSupport::Inflector
puts transliterate("Ærøskøbing")
=> AEroskobing
Run Code Online (Sandbox Code Playgroud)
但是,如果它不知道一个字符,它将默认为??
# encoding: UTF-8
require 'active_support/all'
include ActiveSupport::Inflector
puts transliterate "??"
=> ??
Run Code Online (Sandbox Code Playgroud)
但是,您可以告诉音译如何处理字符.所以在Rails模型中
# Store the transliterations in locales/en.yml
en:
i18n:
transliterate:
rule:
?: "abc"
?: "def"
puts transliterate "??"
=> "abcdef"
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用transliterate(title).parameterize而不仅仅是参数化.如果你把韩语字母变成音译部分,你就会接近金色.
| 归档时间: |
|
| 查看次数: |
996 次 |
| 最近记录: |