Warning: Don't implement an ActiveRecord model called Specimen

I've recently upgraded an application to use Rails 3.1, and in the
course of so doing encountered some strange behaviour that I hope will
not be experienced by others. I have several ActiveRecord model
objects in my application: User, Discussion, Image and Specimen. These
all worked absolutely fine in RoR 2.3.8. But in 3.1, Specimen would do
nothing but refuse to find its associated database table ('Could not
find table "specimen"'), nor would it expose any of its ActiveRecord
methods. The other objects (User, Discussion, Image) worked no problem
at all. In spite of this, I was able to up, down, change and do all
the usual migrations to the Specimen model as expected. The solution
was to rename all references in the application from Specimen to
Specimn (yes, I know), which put everything back on track. I can find
no mention of this word in any reserved word list (http://
oldwiki.rubyonrails.org/rails/pages/ReservedWords,
http://wiki.rubyonrails.org/rails/pages/reservedwords#reserved_words_you_can_t_use),
nor in the SQLite documentation. Something to watch for, or have I
missed something obvious?

Hi!

Search for “inflections” , “rails irregular nouns”.

http://guides.rubyonrails.org/active_support_core_extensions.html#inflections

Best Regards,

Everaldo

I suspect you've got an initializer that added the correct
pluralization rule that isn't getting picked up in 3.1. Out-of-the-box
(on both Rails 2 and 3), "specimen" works like this:

"specimen".pluralize => "specimen"
"specimen".singularize => "speciman"

--Matt Jones

Matt Jones wrote in post #1024650:

I suspect you've got an initializer that added the correct
pluralization rule that isn't getting picked up in 3.1. Out-of-the-box
(on both Rails 2 and 3), "specimen" works like this:

"specimen".pluralize => "specimen"
"specimen".singularize => "speciman"

Rails 3.1 (just to clarify):