2016-11-21 5 views
0

Ich habe eine Rails App, in der ich versuche, einen Kontakt zu downvote oder upvote. Ich habe ein Benutzermodell, das von Devise angetrieben wird. Ich habe auch ein Feedback-Modell, das speichert, welcher Benutzer einen Kontakt up/downvoted hat. Wie kann ich Datensätze in die Feedback-Tabelle einfügen, wenn zwei Benutzer versuchen, die gleichen Kontaktdaten zu aktualisieren/abzurufen?Suchen Sie nach doppelten Datensatz und dann erstellen

+0

finden Haben Sie darüber nachgedacht, re die Dokumentation hinzufügen? –

+0

Mögliches Duplikat von [In Rails, was ist der beste Weg, um einen Datensatz zu aktualisieren oder einen neuen zu erstellen, wenn dieser nicht existiert?] (Http://stackoverflow.com/questions/4621208/in-rails-what-is - Der beste Weg, um einen Datensatz zu aktualisieren oder einen neuen zu erstellen, wenn er funktioniert –

Antwort

0
Contract.find_or_create_by(name: 'xyz') do |contract| 
    contract.user_id = current_user.id 
end 

In dem obigen Code haben Sie zwei Fall

Fall 1) Vertragsname xyz in diesem Fall existiert, wird dieser Vertrag

mit einer Kennung des aktuellen Benutzers aktualisiert wird

Fall 2) Vertragsname xyz existiert nicht ein neuer Vertrag wird in diesem Fall mit einer Kennung des aktuellen Benutzers erstellt werden

Weitere Informationen finden Sie in Api Dock

Verwandte Themen