associations

___ qstnhdr ___ HABTM doppelte Datensätze ___ qstntxt ___

Ich habe 2 Modelle %code% & amp; %code% und sie haben eine has_and_belongs_to_many-Zuordnung. Ich habe viele Lösungen versucht, doppelte Datensätze in der Tabelle %code% zu verhindern, aber keine Lösungen funktionieren. Das Problem ist, %code% ist eine Tabelle, aber es ist kein Modell, also kann ich keinen Weg finden, Prüfungen effektiv durchzuführen.

Hier ist eine Lösung, die ich versucht habe

%Vor%     
___ answer21904493 ___

Sie sollten die Validierung auf Datenbankebene verwenden:

%Vor%

HABTM

Dies verhindert, dass Sie doppelte Daten in der Datenbank speichern. Lässt die Last von Rails & amp; stellt sicher, dass Sie nur ein Spiel oder ein Thema haben. Das Problem liegt darin, dass HABTM kein Modell hat. Es gibt keine Validierung, die Sie in Rails durchführen können, was bedeutet, dass Sie es auf db-level

setzen müssen

Wie in den Kommentaren erwähnt, bedeutet dies, dass Sie die Ausnahmen, die von der db ausgelöst werden, wie folgt behandeln müssen:

%Vor%     
___ answer21896617 ___

Um Validierungen in der Join-Tabelle durchzuführen, sollten Sie stattdessen %code% association verwenden. Ссылка

    
___ tag123rubyonrails3 ___ Ruby on Rails ist ein in Ruby geschriebenes Open-Source-Web-Entwicklungs-Framework. Ruby on Rails folgt dem Prinzip der Konvention über die Konfiguration und befreit Sie davon, Dinge neu erfinden zu müssen, um produktiv zu bleiben. Verwenden Sie dieses Tag nur für Rails 3-spezifische Fragen und markieren Sie diese Fragen [ruby-on-rails]. ___ tag123rubyonrails ___ Ruby on Rails ist ein Open-Source-Full-Stack-Webanwendungs-Framework, das in Ruby geschrieben ist. Es folgt dem populären MVC-Framework-Modell und ist bekannt für seinen "convention over configuration" -Ansatz für die Anwendungsentwicklung. ___ tag123Assoziationen ___ Assoziationen beziehen sich normalerweise auf Beziehungen zwischen Modellen in ORMs wie ActiveRecord. ___ tag123ruby ___ Ruby ist eine multi-plattform Open-Source, dynamische objektorientierte interpretierte Sprache, erstellt von Yukihiro Matsumoto (Matz) im Jahr 1995. Die [Ruby] -Tag ist für Fragen im Zusammenhang mit der Ruby-Sprache, einschließlich seiner Syntax und seiner Bibliotheken . Fragen speziell zum Ruby-on-Rails-Framework sollten mit [ruby-on-rails], nicht [ruby] getaggt werden. Verwenden Sie dies nicht, um Ruby in der japanischen Sprache zu markieren. ___ answer21901340 ___

Das Erstellen eines neuen Model GameTheme zur Validierung ist keine gute Idee. Wir können uns bei der Migration selbst validieren.

Theme Modell:

%Vor%

Spielmodell:

%Vor%

games_themes Migration: Sie können der Join-Tabelle Eindeutigkeit hinzufügen. Sehen Sie sich hier für weitere Details.

%Vor%     
___ answer21896637 ___

Verwenden:

%Vor%

Wie folgt:

%Vor%     
___
1
Antwort

Ruby on Rails - Rollback-Transaktion für Büroklammer

Ich verwende Büroklammer als verschachteltes Attribut und versuche, das Foto bei der Modellerstellung mit fmit hochzuladen Das Fotomodell gehört zu einem klassifizierten Modell .. %Vor% Problem ist, dass ich nach der Einreichung eine "Rol...
12.08.2016, 19:48
1
Antwort

Dia: Gerade für Assoziation im Klassendiagramm

In Dia, standardmäßig (zumindest bei Debian Wheezy out of the box) sind die Linien, die die Assoziationen zwischen zwei Klassen darstellen, nicht gerade, sondern folgen dem Gitter. Gibt es eine Möglichkeit, die Verbindungslinien zwischen Klassen...
22.05.2014, 15:06
1
Antwort

Rails has_many: through und Setting Property im Join-Modell

Ähnlich wie diese Frage , wie setze ich in diesem Zusammenhang eine Eigenschaft auf das Join-Modell vor dem Speichern? %Vor% Ich möchte das nur können: %Vor% Wie würde das funktionieren? Ich habe mir den ganzen Tag den Kopf darüber gest...
21.06.2010, 02:13
2
Antworten

Suchen Sie die Zuordnungen für eine ActiveRecord-Klasse zur Laufzeit?

Ich möchte die Assoziationen einer ActiveRecord-Klasse zur Laufzeit finden ... Nehmen wir an, ich habe folgendes: %Vor% Wie kann ich zur Laufzeit herausfinden, dass die Person "viele" Stühle und Stifte hat und umgekehrt? Ich suche nach ei...
13.03.2009, 21:40
2
Antworten

Überprüfen Sie alle Verbindungen, bevor Sie sie in Schienen zerstören

Ich habe ein wichtiges Modell in meiner Anwendung mit vielen Assoziationen. Wenn ich alle Referenzen in einem Callback von vor_destroy überprüfen möchte, müsste ich etwas tun wie: %Vor% Die Frage ist, gibt es eine Möglichkeit, alle Validieru...
10.06.2011, 01:22
4
Antworten

Zugehörige Modelle und SUM-Abfrage in Rails

Ich habe zwei Rails-Modelle, sagen ein Kind und ein Elternteil. Ich weiß, dass ich das tun kann: %Vor% Aber ich möchte das tun können: %Vor% Aber das gibt mir die falschen Werte, wenn ich es versuche. Gibt es eine prägnantere Schreibw...
05.12.2010, 20:34
1
Antwort

Wie verknüpfe ich ein Modell zweimal mit einem anderen?

Hallo, ich mache eine kleine Seite, um mir und Freunden zu helfen, Sprachen zu lernen. Typische Verwendung: Adam ist Englisch, lernt aber Japanisch. Adam kann seine Japanisch üben, indem er auf Japanisch geschriebene Artikel schreibt und einr...
09.04.2010, 10:17
1
Antwort

Wie nach Bedingungen für zugeordnete Modelle filtern?

Ich habe eine assignesToMany-Verknüpfung für Benutzer und Kontakte. Ich möchte die Kontakte des angegebenen Benutzers finden. Ich würde etwas wie brauchen %Vor% Das Kochbuch spricht davon, Bedingungen zu enthalten, benutzerdefinierte Find...
07.11.2014, 10:27
2
Antworten

Konnte die inverse Zuordnung für has_many in Rails nicht finden 3

Ich habe folgende Modelle: %Vor% Doing business.customers funktioniert gut. Wenn ich jedoch business.payments mache, erhalte ich einen Fehler: Could not find the inverse association for business (:payment in Business) . Ich bin mi...
21.06.2013, 10:54
4
Antworten

Viele-zu-viele-Verknüpfungen mit mehreren Self-Joins in ActiveRecord

Ich versuche, mehrere Beziehungen zwischen Datensätzen des gleichen Modells über Self-Joins zu implementieren (basierend auf @ Shtééf Antwort ). Ich habe folgende Modelle %Vor% Mit diesem Setup kann ich erfolgreich auf die Listen der Unterg...
14.06.2011, 22:51