Forum: Ruby on Rails Rails 3: many to many polymorphic relationship

Posted by Heinz Strunk (cojones)
on 2010-09-01 22:27
Hello,

I've been googling for about two hours already but not successful yet so
I hope you guys can help me out.

I need some kind of n:m polymorphic relation like this:
building_types: living, shops
block_types: residential, commercial

activity_types: act1, act2

So now I need a connection table e.g. activity_scope so I can for
example allow
act1 only for living and residential and act2 for commercial and shops

Any ideas?
Posted by Zoltan Gero (gezope)
on 2010-09-01 23:51
(Received via mailing list)
Hi Heinz,

can you explain a bit more what is the goal? I'm not an expert, so maybe 
I
misunderstood.

What is wrong with 'has_many' and 'belongs_to' models? If a record can 
have
many types, which defined in other database, then it can be explicitly
defined in the model which it belongs to with these.
(I'm not sure if you thought about this.)

I think check Active Record, and how to use it, your answer will be 
there
for sure! (Agile Web Development with Rails have 3 deep chapter about it 
;))

Let me know how is your problem going,
all the bests,
gezope

2010/9/1 Heinz Strunk <lists@ruby-forum.com>
Posted by Ar Chron (railsdog)
on 2010-09-02 05:42
Heinz Strunk wrote:
> Hello,
> 
> I've been googling for about two hours already but not successful yet so
> I hope you guys can help me out.
> 
> I need some kind of n:m polymorphic relation like this:
> building_types: living, shops
> block_types: residential, commercial
> 
> activity_types: act1, act2
> 
> So now I need a connection table e.g. activity_scope so I can for
> example allow
> act1 only for living and residential and act2 for commercial and shops
> 
> Any ideas?

This doesn't sound like a polymorphic relationship (at least not in 
terms of tables).  Are living, shop, residential and commercial each 
models, or just attribute values for a building model (living or shop) 
and a block model (residential or commercial)?

It feels like this is more just a case of a complex validation where you 
need to check the building type of a related building and the block_type 
of a related block according to the activity type.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.