【问题标题】:Titleize and accent in rails在 Rails 中命名和重音
【发布时间】:2016-10-15 21:22:51
【问题描述】:

我在我的 rails 应用程序中使用 .titleize,但我得到了一个带有重音的不想要的结果。

示例: 对于 Prégneau 这个词,使用 .titleize 方法的结果是 PrÉgneau...

我该如何解决这个问题?谢谢

002 > 'PRÉGNEAU'.titleize => "PrÉgneau"

【问题讨论】:

  • 我无法复制它 -- "prégneau".titleize => Prégneau 对我来说。你运行的是什么版本?
  • @JohnFeltz 'PRÉGNEAU''prégneau' 是不同的字符串...
  • 我测试了问题的初始版本。 OP 从那时起对其进行了编辑...

标签: ruby-on-rails ruby internationalization


【解决方案1】:

使用 Rails 4.2.7.1 和 ruby​​ 2.3.1 可以正常工作

Loading development environment (Rails 4.2.7.1) 2.3.1 :001 > 'Prégneau'.titleize => "Prégneau"

你使用什么 Rails 和 ruby​​ 版本? 进入你的项目类型rails -vruby -v

【讨论】:

  • 嘿,我正在使用 rails 5.0.0 和 ruby​​ 2.2.4。 DB中的原始名称是“PRÉGNEAU”。你可以试试“PRÉGNEAU”.titleize 吗?
  • 我复制你的问题。好吧,这发生在非英语字符串中。你可以试试这个封装了原始字符串的'PRÉGNEAU'.mb_chars.titleize.to_sActiveSupport::Multibyte::Chars 类。在此代理类上定义了所有 String 方法的 Unicode 安全版本。如果代理类没有响应某个方法,则转发到封装好的字符串。
  • 感谢您的帮助。这真的很奇怪,因为这种方法可以在控制台中使用,但是如果我尝试在我的视图中植入它,它就不起作用了,我也会遇到同样的问题...... 跨度>
  • 也许你应该在保存@camping 时保存格式化的值。公社=_comune。 mb_chars.titleize.to_s 这样您就可以避免每次加载视图时都使用 mb_chars
  • 我可以把这个放在哪里?
猜你喜欢
  • 2011-06-05
  • 2014-09-18
  • 2023-03-27
  • 2016-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 2010-10-04
相关资源
最近更新 更多