mysql - Rails 无法删除或更新父行 : a foreign key constraint fails

标签 mysql ruby-on-rails ruby-on-rails-4 reference

我想从我的数据库中删除一些东西。 该值引用了一些其他表。

错误是:

Mysql2::Error: Cannot delete or update a parent row: a foreign key constraint fails

如何正确解决这个问题?

如果我添加一些约束,例如删除级联,其他值将不会被删除,对吧?

编辑:

def delete
   @vid = Movie.find params[:id]
   @vid.delete
   redirect_to :action => :add
end

更新模型

电影.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

评论.rb

class Comment < ActiveRecord::Base
  belongs_to :movie
  belongs_to :user
  belongs_to :rating

最佳答案

确保你的父级 Model.rb 有

has_many :model, :dependent => :delete_all 

这可确保在删除父模型后删除所有数据。

比如你有 Post.rb 和 Comment.rb

后.rb

has_many :Comments, :dependent => :delete_all

因此,当您删除一个帖子时,所有相应的评论也将被删除。

希望对你有帮助

干杯

关于mysql - Rails 无法删除或更新父行 : a foreign key constraint fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37025885/

相关文章:

php - MySQL PHP 按日期对结果进行分组并回显它们

php - 在mysql中选择大量插入

ruby-on-rails - 使用 godaddy 在 heroku 上添加 SSL 证书

ruby-on-rails - 为什么我不能在 Carrierwave 中编辑此图像?

ruby-on-rails-4 - 如何加快本地 Rails UI 测试的第一个请求

ruby-on-rails-4 - 设计错误:I18n::MissingInterpolationArgument at/users/sign_in 用户名和密码无效

mysql - MySQL 过滤重复项

mysql - 删除WordPress表的最后一条记录

ruby-on-rails - ruby rails : Foursquare remove list item gives 400 value is invalid for item id

ruby-on-rails - 如何在重定向时显示 Rails flash 通知?