Nik*_*rez 7 ruby activerecord ruby-on-rails
我正在寻找类似CodeIgniter的东西:
$this->db->last_query();
Run Code Online (Sandbox Code Playgroud)
Sim*_*tti 24
AFAIK,没有简单的方法来访问查询列表.尽管如此,您可以轻松访问它们,创建一个超级简单的记录器.
如果打开该类,ActiveRecord::ConnectionAdapters::AbstractAdapter
您将看到一个名为log的方法.在每个查询上调用此方法以记录该语句.默认情况下,它使用Rails记录器记录所有语句.
你可以做点什么
ActiveRecord::ConnectionAdapters::AbstractAdapter.class_eval do
attr_reader :last_query
alias_method_chain :log, :last_query
def log_with_last_query(sql, name, &block)
@last_query = [sql, name]
log_without_last_query(sql, name, &block)
end
end
Run Code Online (Sandbox Code Playgroud)
现在您可以使用
ActiveRecord::Base.connection.last_query # => ...
Run Code Online (Sandbox Code Playgroud)