我正在使用宝石: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,为现有产品生成slu ::
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
答案 0 :(得分:0)
您可以通过替换模型product.rb
上的函数来修复它:
"input.to_s.to_slug.normalize(transliterations: :russian).to_s" ->
"input.to_slug.normalize! :transliterations => [:russian]"
在我的模型上它是:
def normalize_friendly_id(text)
text.to_slug.normalize! :transliterations => [:vietnamese]
end