active_record-comments

Comments for activerecord


License
MIT
Install
gem install active_record-comments -v 0.9.0

Documentation

Adds comments to your activerecord queries so you can seem where they came from or what user caused them.
Tested on Rails 4/5

ActiveRecord 6.0 introduces an API to annotate queries but 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
michael@grosser.it
License: MIT