如何查看生成ActiveRecord :: StatementInvalid的SQL语句?

时间:2016-02-20 19:39:21

标签: ruby-on-rails activerecord

当我尝试更新我的一个模型时,我遇到了这个异常:

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "id"
LINE 1: ...M "options" WHERE "options"."product_id" = $1 AND "id"."name...
                                                             ^
: SELECT  "options".* FROM "options" WHERE "options"."product_id" = $1 AND "id"."name" = $2 LIMIT $3
from /Users/mikeyhew/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.0.beta2/lib/active_record/connection_adapters/postgresql_adapter.rb:634:in `prepare'

使用此异常,如何查看无效的完整SQL查询?

1 个答案:

答案 0 :(得分:0)

以下是我设法找到无效的sql语句的方法:我打开了发生异常的文件,并在引发异常之前将调试器语句放在该行上。

我希望StatementInvalid异常或PG :: UndefinedTable异常将实际的sql代码作为其实例变量之一,但事实并非如此。