2013-05-31 1 views
5

. 이 링크를보십시오 : http://www.srecipe.kr.com/articles/8FriendlyID 한국어 슬러그

다른 언어가 작동합니다.

/this-is-url과 같은 라틴 문자에 매핑되는 URL을 얻으려면 어떻게해야합니까? 신품?

+0

답변을 받았습니까? 나는 그렇게 생각하지 않는다! 그것은 화제로 표시되고 힘은 닫혔다. 부디! –

답변

7

모든 퍼머 링크 솔루션과 마찬가지로 friendly ID는 parameterize 메서드를 사용하여 문자열을 URL 안전 문자열로 변환합니다. 같은 :

# encoding: UTF-8 
require 'active_support/all' 
puts "신품".parameterize 
=> 

ActiveSupport는 비 ASCII 문자열을 변경하는 방법을 제공합니다 :

require 'active_support/all' 
puts "Oh Hai There".parameterize 
=> oh-hai-there 

문제는 당신이 당신의 문제를 일으키는, 빈 문자열로 대체 매개 변수화하는 비 ASCII 문자열을 사용하는 경우에 제공 가까운 가까운 transliterate 방법을 통해.

# encoding: UTF-8 
require 'active_support/all' 
include ActiveSupport::Inflector 

puts transliterate("Ærøskøbing") 
=> AEroskobing 

그러나 캐릭터에 대해 알지 못하면 기본값은 ??

# encoding: UTF-8 
require 'active_support/all' 
include ActiveSupport::Inflector 

puts transliterate "신품" 
=> ?? 

그러나 글자를 어떻게 처리 할 수 ​​있는지를 말하면됩니다.

# Store the transliterations in locales/en.yml 
en: 
    i18n: 
    transliterate: 
     rule: 
     신: "abc" 
     품: "def" 

puts transliterate "신품" 
=> "abcdef" 

그래서 레일 모델 그래서, 당신은 transliterate(title).parameterize를 사용하는 대신에 단지 매개 변수화 할 수 있습니다. 그리고 만약 당신이 음역 섹션으로 한국어 알파벳을 얻으면, 당신은 황금에 가깝습니다.

+0

http://www.rubydoc.info/gems/unidecode/1.0.0/frames –

+0

결과 규칙을 따옴표로 묶어 놓는 것을 잊어 버렸습니다 : I18n :: InvalidLocaleData : config/로케일/en.yml : #

2

아직이 시도하지하지만 난 갈거야 : 내가 그들을 시도했습니다 때 내가 다시보고 있습니다

.

+0

보고서는 어디에 있습니까? –

+0

공정한 의견. 2 년이 지난 지금 나는 내 결론이 무엇인지 기억할 수 없다. 내가 누군가에게 도움이 될 수 있도록 회신을 삭제하거나 거기에있는 레포의 목록을 남겨 두어야한다고 생각합니까? –

+0

로마의 레포가 나에게 도움이되었다! 링크 주셔서 감사합니다! –