# Ternarie in rails?

**URL:** <https://www.ruby-forum.com/t/ternarie-in-rails/157799>\
**Category:** IT\
**Created:** [January 15, 2009, 12:57pm UTC](https://www.ruby-forum.com/t/ternarie-in-rails/157799 "2009-01-15T12:57:09Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [January 15, 2009, 12:57pm UTC](https://www.ruby-forum.com/t/ternarie-in-rails/157799/1 "2009-01-15T12:57:09Z")

</div>

Ciao a tutti,  
essendo abituato a modellare utilizzando il modello E/R, mi imbatto  
spesso in relazioni ternarie e le traduco con una nuova tabella  
associativa che contiene le chiavi delle entità in relazione …;  
volevo chiedere se c’è un modo per tradurre questo tipo di relazione  
anche in rails; se si, mi potreste dire dove posso vedere alcuni esempi  
?

Grazie a tutti.

Luigi

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [January 15, 2009, 1:30pm UTC](https://www.ruby-forum.com/t/ternarie-in-rails/157799/2 "2009-01-15T13:30:46Z")

</div>

Il giorno 15/gen/09, alle ore 12:58, Luigi M. ha scritto:

> 

se hai una tabella associativa chiamata assocs con

user\_id  
role\_id  
project\_id

dove tutto puo’ succedere (cioe’ lo user puo’ avere diversi ruoli in  
differenti progetti etc…)

penso che l’unica sia usare due

has\_many :projects :through =\> :assocs  
has\_many :roles :through =\> :assocs  
has\_many :assocs

e quindi definire un paio di funzione helpers nei modelli tipo (per  
lo user):

def roles\_in\_project(project):  
Assoc.find(:all, :conditions =\> [“project\_id = ? and user\_id = ?”,  
project.id, self.id)  
end

etc. etc.

altrimenti potresti definire due tabelle associative (una con tutte  
le coppie project, role ed una chiave primaria, ed una che associa  
questa allo user\_id) e usare quindi has\_and\_belongs\_to\_many

Ti avviso che la mia risposta e’ solo indicativa. Non mi sono mai  
trovato in questa circostanza o se mi sono trovato non l’ho  
affrontata riflettendoci molto a fondo.

Ciao
