小编Gus*_*rtz的帖子

Ruby方法从UTF-8国际字符中删除重音

我正在尝试创建字符串的"规范化"副本,以帮助减少数据库中的重复名称.名称包含许多国际字符(即重音字母),我想创建一个删除了重音的副本.

我确实遇到过以下方法,但无法让它发挥作用.我似乎无法找到Unicode Hacks插件是什么.

  # Utility method that retursn an ASCIIfied, downcased, and sanitized string.
  # It relies on the Unicode Hacks plugin by means of String#chars. We assume
  # $KCODE is 'u' in environment.rb. By now we support a wide range of latin
  # accented letters, based on the Unicode Character Palette bundled inMacs.
  def self.normalize(str)
     n = str.chars.downcase.strip.to_s
     n.gsub!(/[à áâãäåÄÄ?]/u,    'a')
     n.gsub!(/æ/u,                  'ae')
     n.gsub!(/[ÄÄ?]/u,                'd')
     n.gsub!(/[çÄ?ÄÄ?Ä?]/u,          'c')
     n.gsub!(/[èéêëÄ?Ä?Ä?Ä?Ä?]/u, 'e')
     n.gsub!(/Æ?/u,                   'f')
     n.gsub!(/[ÄÄ?ġģ]/u,            'g')
     n.gsub!(/[ĥħ]/,                'h')
     n.gsub!(/[ììíîïīĩĭ]/u,     'i')
     n.gsub!(/[įıijĵ]/u,           'j') …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails utf-8 internationalization

64
推荐指数
5
解决办法
3万
查看次数

在RVM(OSX)上更新Heroku gem导致了LoadError和"破坏"的heroku gem.什么是最安全的修复方法?

我一直在使用RVM(v1.14.11和JewelryBox GUI)和OSX 10.6.8一年多没有任何问题.我安装了两个红宝石(1.9.2和1.9.3),以及每个红宝石的各种宝石.

由于我刚刚将当前数据库迁移到他们的新产品,我想我也可以更新heroku gem(是2.14).所以我通过rvm选择了我的ruby-1.9.2-p290@railsgemset,打开了终端,并运行了"heroku udpate".

我没有注意到更新期间的任何错误,但我尝试运行"heroku版本",以及其他各种"heroku"命令,现在收到以下错误:

/Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- netrc (LoadError)
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.heroku/client/lib/heroku/auth.rb:6:in `<top (required)>'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.heroku/client/lib/heroku/client.rb:4:in `<top (required)>'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/gems/ruby-1.9.2-p290@rails/gems/heroku-2.14.0/lib/heroku.rb:6:in `<top (required)>'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/gems/ruby-1.9.2-p290@rails/gems/heroku-2.14.0/bin/heroku:6:in `<top (required)>'
        from /Users/me/.rvm/gems/ruby-1.9.2-p290@rails/bin/heroku:19:in `load'
        from /Users/me/.rvm/gems/ruby-1.9.2-p290@rails/bin/heroku:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我注意到上面有一些对"1.9.1"的引用,这是我用rvm建立的原始gemset,然后将其更新为"1.9.2".也许这就是原因?

运行"宝石环境"给出:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.10
  - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin10.8.0]
  - INSTALLATION DIRECTORY: /Users/me/.rvm/gems/ruby-1.9.2-p290@rails …
Run Code Online (Sandbox Code Playgroud)

gem heroku rvm

0
推荐指数
1
解决办法
1750
查看次数

标签 统计

gem ×1

heroku ×1

internationalization ×1

ruby-on-rails ×1

rvm ×1

utf-8 ×1