Ich möchte etwas aus meiner Datenbank löschen. Der Wert verweist auf einige andere Tabellen.Schienen können eine übergeordnete Zeile nicht löschen oder aktualisieren: eine Fremdschlüsseleinschränkung schlägt fehl
Fehler ist:
Mysql2::Error: Cannot delete or update a parent row: a foreign key constraint fails
Wie kann ich das richtig lösen?
Wenn ich einige Einschränkungen wie bei der Löschkaskade hinzufügen, werden die anderen Werte nicht gelöscht, oder?
Edit:
def delete
@vid = Movie.find params[:id]
@vid.delete
redirect_to :action => :add
end
Update-Modelle
movie.rb
class Movie < ActiveRecord::Base
has_many :comments, :dependent => :destroy
has_many :ratings
belongs_to :channel
has_and_belongs_to_many :tags
has_and_belongs_to_many :categories
mount_uploader :video, MovieUploader
comment.rb
class Comment < ActiveRecord::Base
belongs_to :movie
belongs_to :user
belongs_to :rating
Fehler aus einer Kommentar kommen, die zu einem Film gehört. Mysql2 :: Fehler: Eine übergeordnete Zeile kann nicht gelöscht oder aktualisiert werden: eine Fremdschlüsseleinschränkung schlägt fehl ('dev'.comments', CONSTRAINT' fk_rails_56963e5c80' FOREIGN KEY ('movie_id') REFERENZEN' filme' ('id')) : DELETE FROM 'filme' WHERE' filme'.id' = 1 Die Kommentare könnten gelöscht werden .. also sollte ich nur die on delete cascade richtig hinzufügen? – Felix
Wenn Sie die Kommentare löschen möchten, wenn Sie den Film löschen, dann ja. Du könntest das Modell so aussehen 'class Movie
glapworth
versuchte dies, aber depent:: destroy hat keinen Effekt .. – Felix