Ich habe eine drei Tabellen: User
, fruits
, user_fruits
So erstellen Sie einen neuen verknüpften Tabellendatensatz, ohne eine neue Instanz eines Datensatzes zu erstellen. Rails
Es gibt festgelegte Anzahl von Benutzern und Früchten in der Welt. Ich kann keine doppelten Früchte erzeugen. Sagen wir, die Früchte existieren bereits in der Datenbank, und ich möchte sie verwenden, damit ich keine neuen Früchte erschaffe.
Nehmen wir an, wir sind in einem Controller und alles, was ich tun möchte, ist eine neue Instanz von user_fruits
erstellen. Ich möchte auch die verbundene Tabelleninstanz in der Destroy-Aktion löschen, aber nicht die eigentliche Frucht selbst. Ist das der Weg, es zu tun?
def create
user.user_fruits.create!(fruit: fruit)
end
def destroy
user.user_fruits.find_by(fruit: fruit).destroy!
end
private
attr_reader :fruit
def load_fruit
@fruit = Fruit.find_by(color: red, sweetness: 100)
end
Ich möchte auch meine zerstören und erstellen, um einen Fehler zu melden, wenn es fehlschlägt.
ich bearbeiten meine Post. Sagen Sie, die Früchte existieren bereits in der Datenbank. Die Sache, die ich erstellen muss, ist die verbundene Tabellenzeile. – Jwan622
Mit 'Obst' meinst du' @ fruit'? –
Überprüfen Sie die aktualisierte Antwort, Sie brauchen nicht 'attr_reader' –