내 정신을 테스트하는 데 문제가 있습니다. 내 레일 응용 프로그램에서 응용 프로그램 경로에 사용할 I18n 번역 파일에서 이스케이프 처리 된 UTF-8 문자열을로드하고 있습니다. 그러나 라우팅에서 사용할 때 레일은 이스케이프 문자열을 이스케이프 처리하지 않습니다. 여기 내 번역 파일입니다 :이 경로를 탐색 할 때 여기레일 3 경로, Yaml 및 UTF-8 이스케이프
---
ru:
activerecord:
models:
item:
other: "\xD0\xA2\xD0\xBE\xD0\xB2\xD0\xB0\xD1\x80\xD1\x8B" # UTF-8 escaped version of "Товары". (to_yaml is doing the escaping btw)
그리고 것은
match "/#{Item.model_name.human(:count => :other).downcase}" => "items#index"
하지만, 내 설정/routes.rb, 난 얻을 :
Routing Error
No route matches "/%d0%a2%d0%be%d0%b2%d0%b0%d1%80%d1%8b"
가 UTF-8의 경우 이스케이프 처리 된 변환 파일에 저장됩니다. 모든 것이 정상적으로 작동합니다. to_yaml이 문자열을 이스케이프하고 문제를 일으켰습니다. yaml이 원래 문자열을 유지하도록하는 방법이 있습니까?
현재, Rails 3.0.7, Ruby 1.9.2를 사용하고 있습니다. 고마워요!
그래, 레이크 노선의 모습을 다음 YAML이 제대로 생성되기 전에 그러나, 나는 (키는 ASCII-8BIT와 UTF-8 값으로 인코딩되고 있었다) UTF-8로 PARAMS 해시의 키 & 값을 인코딩했다 good : ': 컨트롤러 => "items", : action => "index"}' 해당 경로에 대해 생성 된 URL이 제대로 생성되고 있으며, 실제로는 라우팅 오류 만 발생합니다. 해당 URL에 요청하십시오. – dhulihan