Uninitialized constant error - Using unconventional table names


#1

Hello,

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
end

Any idea where to set the override statement?

Dave


#2

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

Fred