【发布时间】:2011-12-15 17:56:33
【问题描述】:
我有一个代表飞行规则的域模型。飞行规则是执行飞行的规则的集合。视觉飞行规则或 VFR 就是这样一个例子。我正在尝试构建这个模型,但 Rails 坚持让 FlightRules 单数(FlightRule),而我需要它保持复数。有什么方法可以让 Rails 保持模型名称的复数形式?
【问题讨论】:
标签: ruby-on-rails
我有一个代表飞行规则的域模型。飞行规则是执行飞行的规则的集合。视觉飞行规则或 VFR 就是这样一个例子。我正在尝试构建这个模型,但 Rails 坚持让 FlightRules 单数(FlightRule),而我需要它保持复数。有什么方法可以让 Rails 保持模型名称的复数形式?
【问题讨论】:
标签: ruby-on-rails
你必须在config/initializers/inflections.rb下编辑你的inflections.rb文件
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable %w(flight_rules)
end
【讨论】:
flight rules 和flight_rules,但Rails 仍然会生成一个奇异模型。
rails destroy scaffold flight_rules,然后是rails g scaffold flight_rules
rails generate scaffold FlightRules (...)create app/models/flight_rule.rb
rails g scaffold flight_rules 再试一次,它应该可以工作。
试试这个
rails generate scaffold FlightRules (...) --force-plural
您可以通过以下方式获得有关生成器的帮助:
rails g scaffold -h
【讨论】:
--force-plural 标志来让脚手架正确创建,然后我必须添加一个不可数的变形来让我的固定装置和路线正常工作.请参阅有关变形的 SO 答案:stackoverflow.com/a/8524566/806956 和此博客文章:markembling.info/2011/06/…
ActiveSupport::Inflector::Inflections 是你的朋友。
有一个文件config/initializers/inflections.rb,您可以对其进行编辑。该文件包含注释示例,因此添加您自己的规则应该很容易。
【讨论】: