我有一个名为legacy的模型,现在我正在为它生成控制器。 rails会被名为legacies的控制器搞糊涂吗?这些命名惯例是否存在任何潜在的问题?
答案 0 :(得分:3)
Rails使用名为Inflector的模块将单数名称转换为复数,cameilize和类似任务。例如,该模块会自动将person
模型映射到people
控制器。
您可以在config/initilizers/inflections.rb
添加<{1}}
#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核心团队已经为变形库提供了补丁 不会被接受以避免破坏遗留应用程序 这可能是依赖于错误的变形。如果你发现了 不正确的变形,并要求它为您的应用程序,你需要 自己纠正。