简体   繁体   中英

Rails Polymorphic Association with multiple models

This is the case: I have 4 models which are "owner", "user", "location" and "landlord". All of these models share email addresses and phones. So I'm thinking to use Polymorphic Association and I made a research but I just see cases for 3 models. In my case as you can see I will have more than 3 models.

So, do you think is a good idea to implement this kind of logic where I want to use a model like the "repository" for all emails and phones numbers?

There is a limit or something in order to use that kind of association?. I'm thinking in some models like:

email
emailable
user
owner
landlord
location

Each model will have their necessary fields.

Thanks in advance.

There's no limit. A polymorphic association is an open interface that any other model can plug into. In your example, maybe you have a Contact model, which belongs_to :contactable, polymorphic: true . The contacts table will need two indexed columns: contactable_id:integer , and contactable_type:string . Any other model can be contactable , as long as it has_one :contact, as: :contactable .

As far as if it's a good idea, I'd say if you think you will need to work with contacts as a separate entity from the contactable models, then this is a good solution. However, if you won't need to deal directly with contacts then it might be overcomplicating when you could just add email and phone fields to these models.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM