Hi there, On Thu, 2010-09-16 at 18:12 -0700, DanielMedia wrote: > I'm very new to Ruby and to Rails. I'm coming from PHP and CakePHP. > > I would like to create a base model from which all other models will > inherit from. > > I have done this: > > class AppModel < ActiveRecord::Base > end > > and > > class Post < AppModel > end > > I'm getting the following error: > > Table 'blog_development.app_models' doesn't exist > > My question is, how do I tell Rails not to look for a table named > "app_models" AND am I even taking the right approach here? Is there a > better way to do this?
Short answer: Use set_table_name <http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-set_table_name> in Post. [Though I haven't tried this and there may be further complications.] Long answer: You're almost certainly doing the wrong thing. If you want to share code between non-similar models, don't do it using inheritance. Create a module which encapsulates the functionality (people tend to put such stuff in the lib/ directory), and include the module in the models instead. If it might be useful for several different projects, you could put your module in a plugin, and then have the module automatically include itself in ActiveRecord::Base (therefore making its behaviour available to all models). Hope that helps, Jon -- http://jonathanleighton.com/ -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

