首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >智能复数总是智能的?

智能复数总是智能的?
EN

Stack Overflow用户
提问于 2012-09-14 03:40:12
回答 2查看 2.3K关注 0票数 10

Ruby on rails对模型、视图和控制器名称使用单数和复数约定。这非常好,因为可能有一个名为user的模型和一个名为users的控制器。这几乎适用于每个单词,如用户(S),树(S),书(S),所以每个单词只有一个s组成复数。

但是,如果单词不只需要s来构成复数,比如以字母"y“结尾的单词呢?例如,城市和城市?rails知道其中的区别吗?或者我需要编写citycitys,即使它在语法上是错误的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-14 03:54:03

Rails知道很多复数。它可以处理“城市”,例如:

代码语言:javascript
复制
1.9.2p318 :001 > "city".pluralize
 => "cities" 
1.9.2p318 :002 > "cities".singular
 => "city"

然而,你可能会找到它不知道的复数,并且不会学习。请参阅ActiveSupport::Inflector的文档

,Rails核心团队声明将不接受词形变化库的补丁,以避免破坏可能依赖错误词形变化的遗留应用程序。如果您发现了一个不正确的词形变化,并且需要在您的应用程序中使用它,那么您需要自己纠正它(如下所述)。

你自己怎么纠正它呢?在config/initializers/inflections.rb中。例如:

代码语言:javascript
复制
ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural /^(.*)(l)ens$/i, '\1\2enses'
end

有关如何教授rails新变化的更多信息,请再次参阅ActiveSupport::Inflector的文档。

票数 18
EN

Stack Overflow用户

发布于 2012-09-14 03:56:11

对于许多常见的问题,它知道如何很好地处理它。您可以通过执行以下操作在IRB中亲自尝试此操作:

代码语言:javascript
复制
require 'active_support/all'
ActiveSupport::Inflector.pluralize("city")

您将得到一个值为"cities“的字符串。还可以按照config/initializers/inflections.rb中列出的步骤添加和调整词形变化

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12413599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档