Giống như tất cả các giải pháp permalink này, ID thân thiện sử dụng phương pháp parameterize
để chuyển đổi chuỗi thành chuỗi an toàn URL. như vậy:
require 'active_support/all'
puts "Oh Hai There".parameterize
=> oh-hai-there
vấn đề này được đưa ra trong khi bạn sử dụng chuỗi ASCII thuốc, mà parameterize thay thế bằng một chuỗi rỗng, gây ra vấn đề của bạn:
# encoding: UTF-8
require 'active_support/all'
puts "신품".parameterize
=>
ActiveSupport cung cấp một cách để thay đổi chuỗi phi ASCII để gần đúng thông qua phương pháp transliterate
.
# encoding: UTF-8
require 'active_support/all'
include ActiveSupport::Inflector
puts transliterate("Ærøskøbing")
=> AEroskobing
Nhưng, nếu nó không biết về một ký tự, nó sẽ mặc định?
# encoding: UTF-8
require 'active_support/all'
include ActiveSupport::Inflector
puts transliterate "신품"
=> ??
Tuy nhiên, bạn có thể nói phiên âm cách xử lý ký tự. Vì vậy, trong mô hình Rails
# Store the transliterations in locales/en.yml
en:
i18n:
transliterate:
rule:
신: "abc"
품: "def"
puts transliterate "신품"
=> "abcdef"
Vì vậy, bạn có thể sử dụng transliterate(title).parameterize
thay vì chỉ tham số hóa. Và nếu bạn lấy bảng chữ cái Hàn Quốc vào phần phiên âm, bạn gần bằng vàng.
Nguồn
2013-05-31 13:39:58
Đã được trả lời? Tôi không nghĩ vậy! Điều đó đã được đánh dấu là tắt chủ đề và lực lượng đóng cửa. XIN VUI LÒNG! –