Forum: Ruby on Rails uninitialized constant error - Using unconventional table names

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
loominator1970 (Guest)
on 2009-02-06 22:46
(Received via mailing list)

I'm having some trouble with an association between two tables in my
RoR site.  It looks like Rails is attempting to truncate the name of
my model so that it can fit the normal model conventions.  Any idea
how I can override this?

The error:

uninitialized constant Project::ProjectProgres ( i think its
truncating the 's' off 'project_progress' to fit conventions)

The models (and associations)

####  ../models/project_progress.rb
class ProjectProgress < ActiveRecord::Base
  set_table_name "project_progress"
  belongs_to :project

####  ../models/project.rb
class Project < ActiveRecord::Base
  has_many :project_progress

#### ../controllers/project_controllers.rb
      @project.project_progress.each do |p|   ## this is the line its
puking on
          # some code

Any idea where to set the override statement?

Frederick C. (Guest)
on 2009-02-07 14:39
(Received via mailing list)
On Feb 6, 8:46 pm, loominator1970 <removed_email_address@domain.invalid> wrote:
> truncating the 's' off 'project_progress' to fit conventions)
>   has_many :project_progress
A has_many should always use a plural form , regardless of what the
underlying table name is, so has_many :project_progresses should work
nicer. If Rails cannot properly infer the class name from the
association name you can:
- fiddle with the inflection rules so that rails knows how to
singularize/pluralize these words
- use the :class_name option

This topic is locked and can not be replied to.