Hello,
we have a problem in a CMS project that we believe is basic for RoR
developement and could concern others as well - or have already:

RoR implements the 'Single Table Inheritance' (STI) Pattern:
http://www.martinfowler.com/eaaCatalog/singleTableInheritance.html

.. through its 'ActiveRecord' ORM.
The Fowler example mentions a 'type' column and RoR implements this
directly - which we consider inconsistent with DB abastraction:
It forces a 'type' column in the database following the application -
instead of the application asking the DB to derive the type _property_
from immanent record properties.

Practically, we would like to have a database function or condition to
control the type.
As a first step this can be done like this:
Select *, CASE WHEN some_condition THEN 'a' ELSE 'b'  END AS type
  FROM table1;

We could define this as a view and put ut in a RoR model.
Problem is RoR can not tell a real table from a view (another
deficiency IMO) - and will try to UPDATE or INSERT the view which
fails.

So what we'd need is a more flexible way to define STI, or maybe a way
to define a different Table for SELECTs (here a DB-view) in a model
than for UPDATEs and INSERTs.

Has anybody done this before or what are your proposals for a solution?

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to