0

目前,当我在 rails 控制台中运行一个方法时,它会显示所有 sql 查询,但我希望它也能显示在代码中调用 sql 的位置。我怎样才能做到这一点?

4

2 回答 2

4

ActiveRecord::Base.verbose_query_logs = true在控制台中运行为我解决了这个问题。我在这里找到了信息

于 2020-05-01T14:10:00.303 回答
0

撬 ( http://pry.github.com/ ) 可能会有所帮助。从控制台运行时,有一种show-source方法可以执行此操作。这是我在本地做的一个例子。

rails c

DEBUG: Chewy strategies stack: [2] <- urgent @ /Users/jmlockl2/.rvm/gems/ruby-2.3.1@ask/gems/chewy-0.9.0/lib/chewy/railtie.rb:49
Loading development environment (Rails 3.2.22.5)
2.3.1 :001 > pry

[1] pry(main)> q=Question.last
  Question Load (0.2ms)  SELECT `questions`.* FROM `questions` ORDER BY `questions`.`id` DESC LIMIT 1
=> ...

[2] pry(main)> q.email

  User Load (0.2ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 535441 LIMIT 1
=> "email@gmail.com"
[3] pry(main)> show-source q.email
[3] pry(main)> show-source q.email
From: /Users/...question.rb @ line 564:
Number of lines: 3
Owner: Question
Visibility: public

def email
  self.submitter.present? ? self.submitter.email : ''
end
[4] pry(main)>

希望这可以帮助!

于 2020-05-01T14:06:15.600 回答