【问题标题】:Auto-generate transliterated cyrillic slugs with friendly_id使用friendly_id 自动生成音译西里尔字母
【发布时间】:2014-09-07 22:15:29
【问题描述】:

我想在现有模型中实现friendly_id。应用程序使用russian gem,它可以很好地处理新记录或手动保存的记录,但是当我从命令行更新记录时它似乎不起作用。

User.find_each(&:save) (asfriendly_id docs syggested) 生成像 --<id> 这样的 slug。

我使用自定义的 normalize 方法来提供音译的 slug:

def normalize_friendly_id(input)
  Russian.transliterate input.to_s.mb_chars.downcase
end

但它肯定会错过一些边缘情况,并且处理字符串的方式与“正常”工作流程不同。我正在寻找的是重用常规创建/更新流程和本机行为的方法。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 friendly-id transliteration


    【解决方案1】:

    解决此问题的最佳方法:

    1) 在您的 Gemfile 中添加 gem 'babosa'

    gem 'friendly_id'
    gem 'babosa'
    

    2) 模型中的 Owerridefriendly_id 方法

    def normalize_friendly_id(text)
      text.to_slug.transliterate(:russian).normalize.to_s
    end
    

    【讨论】:

    • 现在是text.to_slug.transliterate(:russian).normalize.to_s
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多