Come tutte queste soluzioni di permalink, ID amichevole utilizza il metodo parameterize
per convertire una stringa in una stringa sicura URL. in questo modo:
require 'active_support/all'
puts "Oh Hai There".parameterize
=> oh-hai-there
Il problema arriva quando si utilizzano le stringhe non ASCII, che parametrizzare sostituisce con una stringa vuota, causando il problema:
# encoding: UTF-8
require 'active_support/all'
puts "신품".parameterize
=>
ActiveSupport fornisce un modo per cambiare le stringhe non ASCII a una stretta approssimativa tramite il metodo transliterate
.
# encoding: UTF-8
require 'active_support/all'
include ActiveSupport::Inflector
puts transliterate("Ærøskøbing")
=> AEroskobing
Ma, se non conosce un carattere, verrà impostato su ??
# encoding: UTF-8
require 'active_support/all'
include ActiveSupport::Inflector
puts transliterate "신품"
=> ??
Tuttavia, è possibile dire al traslitterato come gestire i caratteri. Quindi, in un modello di Rails
# Store the transliterations in locales/en.yml
en:
i18n:
transliterate:
rule:
신: "abc"
품: "def"
puts transliterate "신품"
=> "abcdef"
Quindi, è possibile utilizzare transliterate(title).parameterize
invece di parametrizzare. E se ottieni l'alfabeto coreano nella sezione traslitterata, sei vicino al dorato.
fonte
2013-05-31 13:39:58
E 'stata risposta? Io non la penso così! Questo è stato contrassegnato come off topic e force closed. PER FAVORE! –