原帖
缘由
在日常开发中,有时候会碰到要将一些单词按照它的数量来按单复数显示
所幸rails已经考虑到了这一点,在ActionView中有一个方法
There are <%= pluralize @user.size, "user" %>.
例子
pluralize(1, 'person')
# => 1
person pluralize(2, 'person')
# => 2 people
pluralize(3, 'person', 'users')
# => 3 users
pluralize(0, 'person')
# => 0 people
深入研究pluralize方法:
def pluralize(count, singular, plural = nil)
"#{count || 0} " + ((count == 1 || count =~ /^1(\.0+)?$/) ? singular : (plural || singular.pluralize))
end
可以看到英语单词的单复数是由String#pluralize方法提供,这个是由ActiveSupport::Inflector提供的一个扩展方法
在rails console里运行
"post".pluralize
# => "posts"
"octopus".pluralize
# => "octopi"
"sheep".pluralize
# => "sheep"
"words".pluralize
# => "words"
"CamelOctopus".pluralize
# => "CamelOctopi"
继续研究ActiveSupport::Inflector.pluralize
def pluralize(word)
result = word.to_s.dup
if word.empty? || inflections.uncountables.include?(result.downcase)
result
else
inflections.plurals.each { |(rule, replacement)|
break if result.gsub!(rule, replacement)
}
result
end
end
可以看到单词的单复数的匹配设置是在inflection.pluarls里,那要如何修改呢? rails已经有一个配置文件了,
在/paht/to/site/config/initializers/inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.plural /^(ox)$/i, '\1en'
inflect.singular /^(ox)en/i, '\1'
inflect.irregular 'person', 'people'
inflect.uncountable %w( fish sheep )
end
plural和singual是匹配单复数的通用匹配规则,irregular是处理那些特殊单词变化,uncountbale就是那些单复数一样的单词
分享到:
相关推荐
Ruby on Rails中文指南
Ruby On Rails中文教材(PDF)
敏捷Rails中文教程 敏捷Rails中文教程 敏捷Rails中文教程
rails指南 中文版
rails-assets, 在 Rails 中,资产管理的解决 Rails 资产 Bundler 到 Bower 代理本自述文件涉及项目的开发方面。 访问站点了解如何在你的应用程序中使用 Rails 资产。 插件开发设置git clone git@github.com:tenex/r
《Rails之道》详细讨论了Rails的程序代码并通过分析Rails中的代码片段来深入解释它的功能,同时,《Rails之道》部分章节也摘录了一些API文档中的内容,使读者能够快速地找到对应的API文档、相关的示例代码以及深入...
Rails 中微信的 API、命令和消息处理
使用Aptana+Rails开发Rails Web应用 有Aptana的安装配置等等,中文
rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...
Simple Form - 轻松处理Rails表单
rails_email_preview, 在 Rails 中,预览和编辑应用程序邮件程序模板 Rails 电子邮件预览 使用这里 Rails 引擎在浏览器中预览电子邮件。 兼容 Rails 4.2 。电子邮件审阅: 所有电子邮件预览的列表: 代表有两个主题...
在过去的几年中,《Ruby on Rails Tutorial》这本书被视为介绍使用 Rails 进行 Web 开发的先驱者。 在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on ...
[Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...
本资源是参照rails敏捷开发第四版书中的例子,rails的版本是rails3.2.6
shoppe-example, 在 Rails 中使用Shoppe平台的示例存储实现 这是一个 Rails 应用程序,它使用 Shoppe 构建。 它具有一个可以爱的设计,以充分演示Shoppe平台提供的功能以及它在 Rails 应用程序中的。 正在启动要开始...
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
一个用Ruby on Rails搭建的图片分享的网站项目.完整源代码
本文将介绍浅谈Ruby on Rails中的include和extend。include主要用来将一个模块插入到一个类或者其它模块。extend用来在一个对象中引入一个模块,这个类从而也具备了这个模块的方法。
中文世界唯一一本Rails 4.0.0 + Ruby 2.0.0 的自學書籍