宝石在NPM中产生类似于Limax的slu g?

时间:2016-01-29 00:30:38

标签: ruby-on-rails model rubygems slug

我正在寻找一个Rails gem,它可以为字符串生成slug,也知道如何处理亚洲/俄语/等字符(非英语)。

这是我在Node应用程序中通常使用的内容,是否有类似Rails的内容?

https://github.com/lovell/limax

var slug = require('limax');

var latin = slug('i ♥ latin'); // i-love-latin
var cyrillic = slug('Я люблю русский'); // ya-lyublyu-russkij
var pinyin = slug('我爱官话'); // wo3-ai4-guan1-hua4
var romaji = slug('私は ひらがな が大好き'); // ha-hiragana-gaki

2 个答案:

答案 0 :(得分:0)

Rails有parameterize方法,用ASCII近似替换字符串中的特殊字符,以便它可以用作漂亮URL的一部分。西方/拉丁字符提供默认近似值,例如“ø”,“ñ”,“é”,“ß”等。

> 'Bonjour à vous'.parameterize
=> "bonjour-a-vous"
> 'Viel Glück'.parameterize
=> "viel-gluck"

您还可以在config/locales中进行自定义音译,例如

# config/locales/de.yml
i18n:
  transliterate:
    rule:
      ü: "ue"
      ö: "oe"

可以在https://github.com/svenfuchs/rails-i18n/tree/master/rails/transliteration

找到一些语言的列表

对于非拉丁语言,据我所知,没有宝石支持所有这些语言。但是对于一种特定的语言,它可能是可能的。

例如:

答案 1 :(得分:0)

使用Stringex,您可以从许多不同的语言中获取可读的URL。

1
gem 'stringex', '~> 2.6'

现在每次更新帖子时,它都会从title属性生成slug并将其保存到slug字段。

class Post < ActiveRecord::Base
  acts_as_url :title, url_attribute: :slug
end