生成不规则名词的控制器时该怎么办?

时间:2014-04-13 08:38:25

标签: ruby-on-rails ruby-on-rails-4 controller

我有一个名为legacy的模型,现在我正在为它生成控制器。 rails会被名为legacies的控制器搞糊涂吗?这些命名惯例是否存在任何潜在的问题?

1 个答案:

答案 0 :(得分:3)

Rails使用名为Inflector的模块将单数名称转换为复数,cameilize和类似任务。例如,该模块会自动将person模型映射到people控制器。

您可以在config/initilizers/inflections.rb添加<{1}}

添加新的irregular规则,以便将铁路用于取件
#Be sure to restart your server when you modify this file

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'legacy', 'legacies'
end

更新

你可以在以下网址找到使用rails的规则:(https://github.com/rails/rails/blob/master/activesupport/lib/active_support/inflections.rb)尽管有很多pull_requests要添加新规则但是Rails核心团队决定了以下内容,但这些规则并不多;

  

Rails核心团队已经为变形库提供了补丁   不会被接受以避免破坏遗留应用程序   这可能是依赖于错误的变形。如果你发现了   不正确的变形,并要求它为您的应用程序,你需要   自己纠正。