Skip to content

Instantly share code, notes, and snippets.

@jaredbeck
Created July 27, 2015 20:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jaredbeck/58420c1daaa870869619 to your computer and use it in GitHub Desktop.
Save jaredbeck/58420c1daaa870869619 to your computer and use it in GitHub Desktop.
paper_trail issue 572
Loading development environment (Rails 4.2.3)
irb(main):001:0> s = Subgroup.create!(name: "sub")
(0.1ms) begin transaction
SQL (0.3ms) INSERT INTO "subgroups" ("name", "created_at", "updated_at") VALUES (?, ?, ?) [["name", "sub"], ["created_at", "2015-07-27 20:23:35.477973"], ["updated_at", "2015-07-27 20:23:35.477973"]]
SQL (0.2ms) INSERT INTO "versions" ("event", "created_at", "item_id", "item_type") VALUES (?, ?, ?, ?) [["event", "create"], ["created_at", "2015-07-27 20:23:35.477973"], ["item_id", 1], ["item_type", "Subgroup"]]
SQL (0.3ms) UPDATE "versions" SET "transaction_id" = ? WHERE "versions"."id" = ? [["transaction_id", 1], ["id", 1]]
(2.3ms) commit transaction
=> #<Subgroup id: 1, name: "sub", created_at: "2015-07-27 20:23:35", updated_at: "2015-07-27 20:23:35">
irb(main):002:0> f = Faq.create!(name: "faq", subgroups: [s])
(0.1ms) begin transaction
SQL (0.3ms) INSERT INTO "faqs" ("name", "created_at", "updated_at") VALUES (?, ?, ?) [["name", "faq"], ["created_at", "2015-07-27 20:23:39.092388"], ["updated_at", "2015-07-27 20:23:39.092388"]]
SQL (0.1ms) INSERT INTO "faqs_subgroups" ("subgroup_id", "faq_id", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["subgroup_id", 1], ["faq_id", 1], ["created_at", "2015-07-27 20:23:39.093644"], ["updated_at", "2015-07-27 20:23:39.093644"]]
SQL (0.1ms) INSERT INTO "versions" ("event", "created_at", "item_id", "item_type") VALUES (?, ?, ?, ?) [["event", "create"], ["created_at", "2015-07-27 20:23:39.092388"], ["item_id", 1], ["item_type", "Faq"]]
SQL (0.2ms) UPDATE "versions" SET "transaction_id" = ? WHERE "versions"."id" = ? [["transaction_id", 2], ["id", 2]]
(2.4ms) commit transaction
=> #<Faq id: 1, name: "faq", created_at: "2015-07-27 20:23:39", updated_at: "2015-07-27 20:23:39">
irb(main):003:0> f.destroy
(0.1ms) begin transaction
SQL (0.3ms) DELETE FROM "faqs" WHERE "faqs"."id" = ? [["id", 1]]
SQL (0.2ms) INSERT INTO "versions" ("item_id", "item_type", "event", "object", "created_at") VALUES (?, ?, ?, ?, ?) [["item_id", 1], ["item_type", "Faq"], ["event", "destroy"], ["object", "---\nid: 1\nname: faq\ncreated_at: &1 2015-07-27 20:23:39.092388000 Z\nupdated_at: *1\n"], ["created_at", "2015-07-27 20:23:42.411060"]]
PaperTrail::Version Load (0.1ms) SELECT "versions".* FROM "versions" WHERE "versions"."item_id" = ? AND "versions"."item_type" = ? ORDER BY "versions"."created_at" ASC, "versions"."id" ASC [["item_id", 1], ["item_type", "Faq"]]
SQL (0.3ms) UPDATE "versions" SET "transaction_id" = ? WHERE "versions"."id" = ? [["transaction_id", 3], ["id", 3]]
(2.2ms) commit transaction
=> #<Faq id: 1, name: "faq", created_at: "2015-07-27 20:23:39", updated_at: "2015-07-27 20:23:39">
irb(main):004:0> Faq.all
Faq Load (0.2ms) SELECT "faqs".* FROM "faqs"
=> #<ActiveRecord::Relation []>
irb(main):005:0> Subgroup.all
Subgroup Load (0.2ms) SELECT "subgroups".* FROM "subgroups"
=> #<ActiveRecord::Relation [#<Subgroup id: 1, name: "sub", created_at: "2015-07-27 20:23:35", updated_at: "2015-07-27 20:23:35">]>
irb(main):006:0> PaperTrail::Version.find(3)
PaperTrail::Version Load (0.3ms) SELECT "versions".* FROM "versions" WHERE "versions"."id" = ? LIMIT 1 [["id", 3]]
=> #<PaperTrail::Version id: 3, item_type: "Faq", item_id: 1, event: "destroy", whodunnit: nil, object: "---\nid: 1\nname: faq\ncreated_at: &1 2015-07-27 20:2...", created_at: "2015-07-27 20:23:42", transaction_id: 3>
irb(main):007:0> PaperTrail::Version.find(3).reify(:has_many => true).save
PaperTrail::Version Load (0.1ms) SELECT "versions".* FROM "versions" WHERE "versions"."id" = ? LIMIT 1 [["id", 3]]
Faq Load (0.2ms) SELECT "faqs".* FROM "faqs" WHERE "faqs"."id" = ? LIMIT 1 [["id", 1]]
Faq Load (0.1ms) SELECT "faqs".* FROM "faqs" WHERE "faqs"."id" = ? LIMIT 1 [["id", 1]]
FaqsSubgroup Load (0.1ms) SELECT "faqs_subgroups".* FROM "faqs_subgroups" WHERE "faqs_subgroups"."faq_id" = ? [["faq_id", 1]]
PaperTrail::Version Load (0.2ms) SELECT "versions".* FROM "versions" WHERE (id IN (SELECT MIN(id) FROM "versions" WHERE (item_type = 'Subgroup') AND (item_id IN (1)) AND (created_at >= '2015-07-27 20:23:42.411060' OR transaction_id = 3) GROUP BY "versions"."item_id"))
Subgroup Load (0.1ms) SELECT "subgroups".* FROM "subgroups" WHERE "subgroups"."id" = 1
(0.0ms) begin transaction
SQL (0.3ms) INSERT INTO "faqs" ("id", "name", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["id", 1], ["name", "faq"], ["created_at", "2015-07-27 20:23:39.092388"], ["updated_at", "2015-07-27 20:23:54.984534"]]
SQL (0.1ms) INSERT INTO "faqs_subgroups" ("faq_id", "subgroup_id", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["faq_id", 1], ["subgroup_id", 1], ["created_at", "2015-07-27 20:23:54.986466"], ["updated_at", "2015-07-27 20:23:54.986466"]]
SQL (0.1ms) INSERT INTO "versions" ("event", "created_at", "item_id", "item_type") VALUES (?, ?, ?, ?) [["event", "create"], ["created_at", "2015-07-27 20:23:39.092388"], ["item_id", 1], ["item_type", "Faq"]]
SQL (0.3ms) UPDATE "versions" SET "transaction_id" = ? WHERE "versions"."id" = ? [["transaction_id", 4], ["id", 4]]
(2.4ms) commit transaction
=> true
irb(main):008:0> Faq.all
Faq Load (0.2ms) SELECT "faqs".* FROM "faqs"
=> #<ActiveRecord::Relation [#<Faq id: 1, name: "faq", created_at: "2015-07-27 20:23:39", updated_at: "2015-07-27 20:23:54">]>
irb(main):009:0> PaperTrail::Version.find(3).reify(:has_many => true).save!
PaperTrail::Version Load (0.1ms) SELECT "versions".* FROM "versions" WHERE "versions"."id" = ? LIMIT 1 [["id", 3]]
Faq Load (0.1ms) SELECT "faqs".* FROM "faqs" WHERE "faqs"."id" = ? LIMIT 1 [["id", 1]]
FaqsSubgroup Load (0.1ms) SELECT "faqs_subgroups".* FROM "faqs_subgroups" WHERE "faqs_subgroups"."faq_id" = ? [["faq_id", 1]]
PaperTrail::Version Load (0.3ms) SELECT "versions".* FROM "versions" WHERE (id IN (SELECT MIN(id) FROM "versions" WHERE (item_type = 'Subgroup') AND (item_id IN (1,1)) AND (created_at >= '2015-07-27 20:23:42.411060' OR transaction_id = 3) GROUP BY "versions"."item_id"))
Subgroup Load (0.1ms) SELECT "subgroups".* FROM "subgroups" WHERE "subgroups"."id" IN (1, 1)
(0.0ms) begin transaction
(0.0ms) commit transaction
=> true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment