Dwie nazwy dla jednego modelu

Witam.

Mając np adres dostawy i adres zamieszkania dla klienta za pomocą relacji polimorficznej można zrobić:

User.shipment_addres.city
User.delivery_address.city

Shipment i delivery address leżą w jednej tablei addresses.

A załóżmy że mam buyers i sellers, jedni i drudzy maja identyczne dane typu imię, nazwisko itp.

Czy można zrobić aby dane leżały w jednej tabeli np: contractors?

i kod np:

Buyer.find(:all) pokaże wszystkich kupujacych a kod Seller.find(:all) pokaże wszystkich kupujących ?

Pytanie czy do tego też użyć relacji polimorficznej, czy w tabeli contractors musi być pole np type:string a w nim albo seller, albo buyer i potem odpowiednie scope dodać?

Czy to dobre podejście?

Pozdrawiam

Dla mnie to klasyczny przypadek dziedziczenia: Seller i Buyer dziedziczy z Contractor.

“Czy można zrobić aby dane leżały w jednej tabeli np: contractors?”
sory nie zauważyłem tego

nie wiem dlaczego tych buyers i sellers nie wsadzisz do 1 modelu i np pole typu boolean seller a później zrobić scope’a na tym ?

No oko przypuszczam, że będą inne metody dla tych dwóch klas, dlatego proponuję dziedziczenie. Ale jest to bardzo zgrubne założenie - za mało danych, żeby wyrokować.

[quote=l0pez]Mając np adres dostawy i adres zamieszkania dla klienta za pomocą relacji polimorficznej można zrobić:

User.shipment_addres.city
User.delivery_address.city

Shipment i delivery address leżą w jednej tablei addresses.[/quote]
Można też zrobić to bez relacji polimorficznej.

[quote=l0pez]A załóżmy że mam buyers i sellers, jedni i drudzy maja identyczne dane typu imię, nazwisko itp.

Czy można zrobić aby dane leżały w jednej tabeli np: contractors?

i kod np:

Buyer.find(:all) pokaże wszystkich kupujacych a kod Seller.find(:all) pokaże wszystkich kupujących ?

Pytanie czy do tego też użyć relacji polimorficznej, czy w tabeli contractors musi być pole np type:string a w nim albo seller, albo buyer i potem odpowiednie scope dodać?[/quote]
Ja bym się skłaniał do tego, że jest to dajmy na to ten Contractor a buyer/seller to role jakie pełni w pewnym momencie.

paneq i to chyba jest najlepsze rozwiązanie bo przecież chyba moze być tak że ktoś może coś kupować i sprzedawać w tedy najlepiej było by własnie zrobić to na rolach