Skip to content

Latest commit

 

History

History
46 lines (34 loc) · 1.35 KB

Readme.md

File metadata and controls

46 lines (34 loc) · 1.35 KB

Adds comments to your activerecord queries so you can seem where they came from or what user caused them.

ActiveRecord 6.0 introduces an API to annotate queries, so use that if you can, but it doesn't provide a way to pass a block.

Install

gem install active_record-comments

Usage

require "active_record/comments"

# => SELECT ... /* user.rb:123 */
result = ActiveRecord::Comments.comment("user.rb:123") { User.where("x like y").count }

# => SELECT ... /* account cleanup initial */
result = ActiveRecord::Comments.comment("account cleanup") do
  ActiveRecord::Comments.comment("initial") { User.where("x like y").count }
end

If you're using raw SQL rather than Active Record to make your query, you will need to use exec_query rather than execute for comments to be added. e.g.

require 'active_record/comments'

ActiveRecord::Comments.comment("My comment")

sql_query = "SELECT * FROM users;"
result = ActiveRecord::Base.connection.exec_query(sql_query)

# => SELECT * FROM users /* My comment */

If you're replacing execute with exec_query to get comments, exec_query.rows returns data in the same format as execute.entries.

Author

Michael Grosser
[email protected]
License: MIT