【问题标题】:Non-standard pluralization in Rails [duplicate]Rails中的非标准复数[重复]
【发布时间】:2012-11-11 13:35:34
【问题描述】:

可能重复:
How do I override rails naming conventions?

当您在 Rails 中生成新模型时,它会自动将表名复数。然而,这并不总是奏效——尤其是对于具有非标准复数形式的单词。

我创建了一个名为 lens 的模型。因为 rails 认为这个词已经是复数形式了,所以它没有复数迁移文件中的表名。没问题 - 我只是在运行迁移之前编辑了文件并将 lens 更改为 lenses

不幸的是,我在尝试实例化 Lens 类时收到此错误:

Could not find table 'lens'

我假设这是因为 Rails 认为这个词已经是复数形式,所以它在尝试在数据库中查找表时不会尝试复数形式。

那我该怎么办?我应该打破常规,让 Rails 调用表 lens 而不是 lenses,还是有办法正确配置它?

【问题讨论】:

标签: ruby-on-rails database-design model pluralize


【解决方案1】:

您应该有一个 config/initializers/inflections.rb 文件,您可以在其中执行类似操作。

ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural 'lens', 'lenses'
end

【讨论】:

  • 完美!我弹出了这些行,它工作得很好。谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-11-18
  • 2017-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
  • 1970-01-01
  • 2016-05-16
相关资源
最近更新 更多