在Rails中生成新模型时,它会自动复数表名。但是,这并不总是很好 - 特别是对于具有非标准复数的单词。
我创建了一个名为lens
的模型。由于rails认为这个词已经多元化,因此它没有在迁移文件中复数表名。没问题 - 我刚刚编辑了该文件,并在运行迁移之前将lens
更改为lenses
。
不幸的是,我在尝试实例化Lens类时遇到了这个错误:
Could not find table 'lens'
我假设这是因为Rails认为这个词已经是多元化的,所以在尝试在数据库中查找表时,它不会尝试复数。
那我该怎么办?我是否应该违反惯例并让Rails调用表lens
而不是lenses
,或者有没有办法正确配置?
答案 0 :(得分:6)
您应该有一个config/initializers/inflections.rb
文件,您可以在其中执行类似的操作。
ActiveSupport::Inflector.inflections do |inflect|
inflect.plural 'lens', 'lenses'
end