FriendlyID韩国slu ..

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 ???

Jes*_*ott 8

与所有这些永久链接解决方案一样,友好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而不仅仅是参数化.如果你把韩语字母变成音译部分,你就会接近金色.