Could I use inherited model?


#1

Like I have a class A and a class B, A < B, B < ActiveRecord::Base. as
and bs are two different table in database, as has bs’s columns. (I
use postgresql’s inherit table).

Now I do ‘A.find(:all, conditions => “acol1 = 0”)’, acol1 does exists
in bs.
“ActiveRecord::StatementInvalid” throwed, bs does not have acol1
column. “select * from bs where (acol1 = 0)”

How to resolve this? Why A.find does not do “select * from as where
(acol1 = 0)”?
Thanks.


#2

Magicloud wrote:

(acol1 = 0)"?
Adding

set_table_name ‘as’

to the A class may get it working.


We develop, watch us RoR, in numbers too big to ignore.


#3

ActiveRecord supports single table inheritance. The table name is
taken from the immediate subclass of ActiveRecord::Base.

You can place a type column in this table to support Ruby subclasses,
but all columns and all records must be in one table.

The only other option (which I have not tried) is to mark the
immediate subclass of ActiveRecord::Base as abstract in which case all
subclasses will each be in their own table. But, then all
associations that reference any of those classes must be polymorphic
associations.

Michael