ruby轨道 – 智能复数总是聪明?

前端之家收集整理的这篇文章主要介绍了ruby轨道 – 智能复数总是聪明?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Ruby on rails对模型,视图和控制器名称使用单数和复数约定.这是非常好的,因为可能有一个名为user的模型和一个名为users的控制器.这个工作几乎每一个字,如用户,树,书,所以每个单词只有一个形成复数.

然而,那些不仅仅需要一个复数形式的单词呢,比如以字母“y”结尾的单词呢?例如城市?轨道是否知道差异,或者我需要编写城市和城市,即使它是语法错误的?

解决方法

Rails知道很多复数.它可以处理“城市”,例如:
1.9.2p318 :001 > "city".pluralize
 => "cities" 
1.9.2p318 :002 > "cities".singular
 => "city"

但是,您可能会发现它不知道的复数,也不会学习.请参阅ActiveSupport :: Inflector的文档

The Rails core team has stated patches for the inflections library
will not be accepted in order to avoid breaking legacy applications
which may be relying on errant inflections. If you discover an
incorrect inflection and require it for your application,you’ll need
to correct it yourself (explained below).

你怎么纠正?在config / initializers / inflections.rb中.例如:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural /^(.*)(l)ens$/i,'\1\2enses'
end

再次查看ActiveSupport::Inflector的文档,了解有关如何教导轨道新变形的更多信息.

猜你在找的Ruby相关文章