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

Neues Modellobjekt durch eine Assoziation

Ich dachte, dass es möglich ist, ein neues Modellobjekt durch eine Assoziation zu erstellen. %Vor%     
29.09.2010, 12:02
2
Antworten

Active Record Associations undefinierte Methode 'val' (build, create aktiviert von has_many, gehört zu_to)

Ich bin ziemlich neu in den Schienen und habe ein bisschen Schwierigkeiten, die Zusammenhänge zu verstehen. Ich möchte ein schnelles Forum machen (nur der Thread - Post Mechanismus nichts anderes). Meine Modelle werden generiert von: %Vor% I...
09.01.2015, 13:38
4
Antworten

HABTM doppelte Datensätze

Ich habe 2 Modelle Game & amp; Theme und sie haben eine has_and_belongs_to_many-Zuordnung. Ich habe viele Lösungen versucht, doppelte Datensätze in der Tabelle games_themes zu verhindern, aber keine Lösungen funktionieren. Das Problem...
20.02.2014, 01:49