Ich versuche, eine Möglichkeit zum Löschen von Zeilen aus der Tabelle, die mit einer anderen Tabelle zugeordnet ist.Wie autoclearing verbundenen Tabellenzeilen ohne gültige zugeordnete ID
Der Punkt ist, dass ich versuche, Anwendung für Rezepte zu erstellen. Und zum Beispiel möchte ich keine Situation haben, wenn 2 oder mehr Rezepte die gleiche Zutat haben (sagen wir Eier). Und wenn ich ein Rezept entferne, entfernt es automatisch den zugehörigen aktiven Datensatz, aber ich möchte es entfernen, wenn z. Eier werden nicht in einem anderen Rezept verwendet.
Ingredient Modell:
class Ingredient < ApplicationRecord
belongs_to :recipe, inverse_of: :ingredients
end
Rezept Modell:
class Recipe < ApplicationRecord
has_many :ingredients, inverse_of: :recipe
has_many :directions, inverse_of: :recipe
accepts_nested_attributes_for :ingredients,
reject_if: proc { |attributes| attributes['name'].blank? },
allow_destroy: true
accepts_nested_attributes_for :directions,
reject_if: proc { |attributes| attributes['step'].blank? },
allow_destroy: true
validates :tittle, :description, :image, presence: true
has_attached_file :image, styles: { :medium => "400x400#" }
validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/
end
So ist es eine Möglichkeit (ohne SQL-Abfragen) eine solche Operation durchzuführen?
scheint alles in Ordnung, aber wie beginer habe ich keine Ahnung, wie dies zu realisieren .... :( – MajQel