Forum: Ruby supporting/emulating updatable views in a ruby orm

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.
Cb48ca5059faf7409a5ab3745a964696?d=identicon&s=25 ara.t.howard (Guest)
on 2005-11-26 21:28
(Received via mailing list)
i've got a method to emulate updateable views in postgresql which is
rather
simple.  however, i'm wondering if any of the ruby orms out there would
support such a beast.  for example, given:

     create table foo(
       foo text,
       id serial,

       primary key (id)
     );

     create table bar(
       bar text,
       foo_id integer,
       id serial,

       primary key (id),
       foreign key (foo_id) references foo (id)
     );

     create view foobar as
       select
         foo.foo as foo,
         bar.bar as bar
       from foo, bar
       where foo.id = bar.foo_id;

i need to be able to do something like this:

   db = DB::new options

   foo = db.table "foo"
   bar = db.table "bar"

   foobar = db.view "foobar"

   foobar[0]["foo"] = "42"
   foobar[0]["bar"] = "forty-two"

   p foo[0]["foo"] #=> "42"
   p bar[0]["bar"] #=> "forty-two"

i can do this using my code if the view is constructed a certain way,
but i'm
wondering of any of the existing orms have addressed this rather common
need?

regards.

-a
93d566cc26b230c553c197c4cd8ac6e4?d=identicon&s=25 pit (Guest)
on 2005-11-28 09:52
(Received via mailing list)
Ara.T.Howard schrieb:
>     );
>     create view foobar as
>   foo = db.table "foo"
> i can do this using my code if the view is constructed a certain way,
> but i'm
> wondering of any of the existing orms have addressed this rather common
> need?

Ara, I don't have an answer for you, but some more questions. If I
understand your code, you want to create new rows via the view foobar.

Do you want to create a new foo for every new bar? I don't think so,
otherwise you could have both in the same table.

Do you want to allow two foos to have the same text? If not, you should
add a unique key on the foo column to the foo table. Only then it should
be possible to do what you want.

But as I said, I can't tell you anything about the Ruby ORM frameworks.

Regards,
Pit
This topic is locked and can not be replied to.