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

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
22de0d634f9d04642b3643df331ea81a?d=identicon&s=25 loominator1970 (Guest)
on 2009-02-06 21:46
(Received via mailing list)
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
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-02-07 13:39
(Received via mailing list)
On Feb 6, 8:46 pm, loominator1970 <loominator1...@gmail.com> 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
This topic is locked and can not be replied to.