我正在使用Rails和PostgreSQL并且有一个基本的一对多关系,一个Auction有很多Bids.但是,当我尝试删除拍卖(有出价)时,我收到以下错误:
错误:表"update"上的更新或删除违反了表"bid"上的外键约束"fk_rails_43e9021cbf".详细信息:密钥(id)=(1)仍然从表"出价"中引用.
删除没有出价的拍卖会没有错误.
令我困惑的部分是在我的Auction模型中,我有:
has_many :bids, dependent: :destroy
Run Code Online (Sandbox Code Playgroud)

由于我有一个依赖的destroy子句,为什么我仍然会收到此错误?
编辑:我已经尝试删除整个数据库,然后重新创建/重新迁移所有内容 - 仍然得到相同的错误.
我将更好的错误gem添加到我的gemfile中,如下面的gemfile中所示,并运行bundle并查看Using better_errors 1.1.0并重启我的服务器几次.我观看了有关如何安装它的railscast剧集.我以前从未遇到过安装任何其他宝石的问题(我是编程新手).我阅读了文档,我已经检查了这个:
Note: If you discover that Better Errors isn't working - particularly after upgrading from version 0.5.0 or less - be sure to set config.consider_all_requests_local = true in config/environments/development.rb.
Run Code Online (Sandbox Code Playgroud)
关于如何让这个宝石工作的任何想法将非常感谢!这是我的gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.5'
group :development, :test do
gem 'rspec-rails'
gem 'capybara'
end
# Use sqlite3 as the database for Active Record
group :production do
gem 'pg'
gem 'rails_12factor'
end
group :development do
gem 'sqlite3'
gem …Run Code Online (Sandbox Code Playgroud) rails 4.2 web-console gem是better_errors gem的完全替代品吗?或者我需要查看每个gem的功能以确定哪个我更喜欢?
是否可以使用优秀的better_errors gem作为调试器?
换句话说,我可以添加代码以使其进入better_errors"错误"页面,浏览,检查事物,然后继续吗?
我可以添加一个虚假的错误或者raise,但是我不能"继续".
是的,我知道我可以使用调试器或pry,但better_errors接口是优越的,包含各种请求和堆栈信息,我可以使用2个窗口而不是3来编码/调试.
我有一个使用Better Errors的Rails应用程序,但错误页面不会加载binding_of_caller交互式shell(REPL).相反,它仍然只显示:
Tip: add gem "binding_of_caller" to your Gemfile to enable the REPL and local/instance variable inspection.
Run Code Online (Sandbox Code Playgroud)
我的Gemfile有:
group :development, :test do
gem 'debugger'
gem 'better_errors'
gem 'binding_of_caller' #, :platforms=>[:mri_19, :mri_20, :rbx]
Run Code Online (Sandbox Code Playgroud)
我试过的最后一部分是注释还是未注释.在Rails控制台中尝试"require'binding_of_caller'"时,它返回false而不是错误,这意味着它已正确加载.Gemfile.lock显示以下版本:
rails (4.1.0.rc2)
better_errors (1.1.0)
coderay (>= 1.0.0)
erubis (>= 2.6.6)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
Run Code Online (Sandbox Code Playgroud)
可能有什么问题?我应该提供哪些其他代码才能找到出错的线索?
我正在研究cloud9 IDE上的一些项目,而且我无法让错误的gem更好地正常工作,这真是令人沮丧.它不应该需要初始化; 它应该只是开箱即用.但是,我仍然只得到通常丑陋的红色错误页面.我应该指定它包含在我的gemfile中,而且我bundle install已经.
如何才能使错误更好才能正常工作?我缺少一个安装步骤吗?