ruby-on-rails - 如何避免在 ruby​​/rails 中缩减首字母缩略词

标签 ruby-on-rails ruby

<分区>

我有一个包含“IT 专业人员”或“数据库管理员”等标题的字段。 我想在句子中间显示这个,所以需要小写。不幸的是,这也降低了首字母缩写词的大小写,最后我得到了“感谢加入 IT 专业人士社区”。

Grantovich 在下面提到的解决方案是一个好的开始,即在 config/initializers/inflections.rb 中指定我的首字母缩略词:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.acronym "IT"
  inflect.acronym "DB"
end

走这条路的问题是,首先,我不想像解决方案的一部分所建议的那样以小写形式存储它们,因为它们是标题,应该与大写字母一起存储。其次,它们已经以大写形式定义,突然将它们变为小写并不是一个好主意。

找到的解决方案:由于我希望标题出现在句子的中间,因此需要小写,我通过将标题小写、构建句子然后调用 #humanize 来解决它。 Humanize 会将句子的第一个字母和任何已定义的首字母缩写词大写。

最佳答案

如果可能,我会将字符串存储为“IT 专业人员”、“数据库管理员”等,除了首字母缩略词之外的所有字母都已小写。然后你可以add your acronyms to the inflector并在需要时使用 #titleize 转换为首字母大写。就边缘情况和代码维护负担而言,这是比编写自己的代码进行“选择性降级”更好的解决方案。

关于ruby-on-rails - 如何避免在 ruby​​/rails 中缩减首字母缩略词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18987453/

相关文章:

ruby - 找不到包 ruby​​1.9.3

Ruby:即时值(value)支票?

ruby-on-rails - 如何测试 Controller 规范中的 strong_parameters?

c++ - 如何在Mac OS X上安装ruby-filemagic?

ruby-on-rails - ActiveAdmin:如何将面板添加到表单 block 中?

ruby-on-rails - 如何获取 Ruby on Rails 中两个日期时间之间的秒数

ruby-on-rails - ruby rails 将参数转换为 int 数组

ruby-on-rails - ActionController::InvalidAuthenticityToken

ruby-on-rails - 设计如何向创建用户表单添加附加字段?

ruby-on-rails - 如何在 Ruby on Rails 中使用 include 或 join 获取其他表的结果