2016-12-12 1 views
0

Ich baue eine Schnittstelle, wo Menschen Tags für den Inhalt von verschiedenen Websites senden können, so dass jeder einen Parameter domain und has_one :tag hat.Überprüfen, ob ein Datensatz vorhanden ist, wo Kind Wert hat

Der Trick ist, dass ich überprüfen möchte, ob dieses Tag für diese Domäne vor dem Speichern bereits eingereicht wurde.

Etwas wie:

Submission.where(domain: submission_params[:domain], tag.tag_text: submission_params[:tag][:tag_text]).exists? 
+0

haben Sie es zu arbeiten? –

+0

@AndreyDeineko Vielen Dank für das Einchecken. Ich hatte eine Menge anderer Sachen kommen, so dass ich nicht in der Lage, es noch eine Chance zu geben. Ich sollte es in den nächsten paar Stunden schaffen. – neanderslob

Antwort

2

Um die zugehörige Tabelle abzufragen zu können, sollten Sie es JOIN. In Ihrem Fall ist joins was Sie suchen (INNER JOIN):

Submission.joins(:tag) 
      .where(
      submissions: { domain: submission_params[:domain] }, 
      tags:  { tag_text: submission_params[:tag_attributes][:tag_text] } 
     ).exists? 
+0

Während dieses Code-Snippet die Frage lösen kann, [hilft eine Erklärung] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, um die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. – DimaSan

+0

@DimaSan du hast Recht, fügte die Erklärung hinzu –

+0

Arbeitete gut, danke! – neanderslob

Verwandte Themen