2012-04-12 12 views
2

ich zwei Benutzermodelle haben: Advisor und Investor, werden sie mit Relation Modell über has_many_through Beziehung verbunden. Problem ist, dass ich die Beziehung zwischen eingeloggten Investor Benutzer mit Advisor Benutzer per E-Mail speichern möchten. Ich habe den folgenden Code:Wie in has_many_through Beziehung zusätzliches Feld speichern

advisor = Advisor.where(:email => params[:invite][:email]) 
if advisor.exists? 
@logged_investor.advisors << advisor 
end 

das funktioniert gut, aber ich brauche ein zusätzliches Feld zu Relation Tabelle „Status“ genannt zu speichern, die einen Status ihrer Beziehungen verfolgen wird. Wie mache ich das?

Antwort

3
@logged_investor.relations.create(:status => ..., :advisor => ...) 
+1

Die OP ist eine Frage, die ich etwa alle zwei Monate durchführe und am Ende den ungeschickten Weg, dh 'Relation.create! '(: Investor => ...,: advisor => ...,: Status => ...) '. Ich erinnere mich noch lange an die elegantere Antwort von @victor. ;) –

+0

gibt es eine Möglichkeit, eine Validierung vor dem Speichern durchzuführen? wie neu und dann gültig? –

1

sollten Sie in der Lage sein, die Beziehungstabelle wie jede andere Beziehung nur den Zugriff von

@logged_investor.relations 

wenn die modles richtig eingestellt sind. Suchen Sie dann die gewünschten Beziehungen und ändern Sie den Statuswert.

Es ist einfach zu prüfen, welche Art von Methoden Sie auf ein Objekt mit der Rails-Konsole aufrufen können, wie jede andere Befehlszeile, Registerkarte drücken gibt Ihnen alle verfügbaren Methoden und Attribute, die Objekt hat.

Verwandte Themen