Я использую драгоценные камни: friendly_id, babosa
.Ruby on Rails friendly_id, драгоценные камни babosa, проблемы с транслитерацией
Модель product.rb:
class Product < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
has_many :tags
def normalize_friendly_id(input)
input.to_s.to_slug.normalize(transliterations: :russian).to_s
end
end
Я начал сonsole, генерировать слизней для существующих продуктов:
Product.find_each(&:save)
Проверка последнего пункта:
Product.last
#<Product id: 4972, name: "ВА 47-63, 2P 2А (C) EKF", created_at: "2016-01-27 11:32:39", updated_at: "2016-01-27 11:32:39", slug: 04b4aa2d-2bb9-46f9-8d49-cbb9d0c3f872">
Но транслитерации неправильно. Я стараюсь делать то же самое в консоли:
"ВА 47-63, 2P 2А (C) EKF".to_s.to_slug.normalize(transliterations: :russian).to_s
=> "va-47-63-2p-2a-c-ekf"
Теперь его обычный результат. Я не понимаю, почему это так.
Точно так же транслитерация для тегов, она получила адекватную.
Модель tag.rb:
class Tag < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
belongs_to :product
def normalize_friendly_id(input)
input.to_s.to_slug.normalize(transliterations: :russian).to_s
end
end
Что делать вы говорите, что «транслитерация ошибочна»? Какое значение имеет «вход»? –