Created
March 4, 2016 02:10
-
-
Save msbit/a56285c870f66a1c0a08 to your computer and use it in GitHub Desktop.
ActiveRecord::QueryMethods#includes has_many through with conditions on destination model
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Fetching gem metadata from https://rubygems.org/........... | |
| Fetching version metadata from https://rubygems.org/.. | |
| Resolving dependencies... | |
| Using i18n 0.7.0 | |
| Using json 1.8.3 | |
| Using minitest 5.8.4 | |
| Using thread_safe 0.3.5 | |
| Using builder 3.2.2 | |
| Using arel 6.0.3 | |
| Using sqlite3 1.3.11 | |
| Using bundler 1.11.2 | |
| Using tzinfo 1.2.2 | |
| Using activesupport 4.2.5.2 | |
| Using activemodel 4.2.5.2 | |
| Using activerecord 4.2.5.2 | |
| -- create_table(:users, {:force=>true}) | |
| D, [2016-03-04T13:08:15.263241 #36845] DEBUG -- : [1m[36m (0.3ms)[0m [1mCREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) [0m | |
| -> 0.0046s | |
| -- create_table(:participations, {:force=>true}) | |
| D, [2016-03-04T13:08:15.263727 #36845] DEBUG -- : [1m[35m (0.1ms)[0m CREATE TABLE "participations" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "user_id" integer) | |
| -> 0.0004s | |
| -- create_table(:attempts, {:force=>true}) | |
| D, [2016-03-04T13:08:15.264138 #36845] DEBUG -- : [1m[36m (0.1ms)[0m [1mCREATE TABLE "attempts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "completed" boolean, "participation_id" integer) [0m | |
| -> 0.0004s | |
| Run options: --seed 11313 | |
| # Running: | |
| D, [2016-03-04T13:08:15.291722 #36845] DEBUG -- : [1m[35m (0.0ms)[0m begin transaction | |
| D, [2016-03-04T13:08:15.293320 #36845] DEBUG -- : [1m[36mSQL (0.1ms)[0m [1mINSERT INTO "users" DEFAULT VALUES[0m | |
| D, [2016-03-04T13:08:15.293570 #36845] DEBUG -- : [1m[35m (0.0ms)[0m commit transaction | |
| D, [2016-03-04T13:08:15.299650 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
| D, [2016-03-04T13:08:15.304017 #36845] DEBUG -- : [1m[35mSQL (0.1ms)[0m INSERT INTO "participations" ("user_id") VALUES (?) [["user_id", 1]] | |
| D, [2016-03-04T13:08:15.304267 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mcommit transaction[0m | |
| D, [2016-03-04T13:08:15.305302 #36845] DEBUG -- : [1m[35m (0.0ms)[0m begin transaction | |
| D, [2016-03-04T13:08:15.308372 #36845] DEBUG -- : [1m[36mSQL (0.1ms)[0m [1mINSERT INTO "attempts" ("participation_id", "completed") VALUES (?, ?)[0m [["participation_id", 1], ["completed", "t"]] | |
| D, [2016-03-04T13:08:15.308607 #36845] DEBUG -- : [1m[35m (0.0ms)[0m commit transaction | |
| D, [2016-03-04T13:08:15.308743 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
| D, [2016-03-04T13:08:15.309269 #36845] DEBUG -- : [1m[35mSQL (0.0ms)[0m INSERT INTO "attempts" ("participation_id", "completed") VALUES (?, ?) [["participation_id", 1], ["completed", "f"]] | |
| D, [2016-03-04T13:08:15.309453 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mcommit transaction[0m | |
| D, [2016-03-04T13:08:15.311743 #36845] DEBUG -- : [1m[35mUser Load (0.1ms)[0m SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 1]] | |
| D, [2016-03-04T13:08:15.319519 #36845] DEBUG -- : [1m[36mParticipation Load (0.2ms)[0m [1mSELECT "participations".* FROM "participations" WHERE "attempts"."completed" = ? AND "participations"."user_id" IN (1)[0m [["completed", "t"]] | |
| ED, [2016-03-04T13:08:15.320021 #36845] DEBUG -- : [1m[35m (0.1ms)[0m begin transaction | |
| D, [2016-03-04T13:08:15.320621 #36845] DEBUG -- : [1m[36mSQL (0.1ms)[0m [1mINSERT INTO "users" DEFAULT VALUES[0m | |
| D, [2016-03-04T13:08:15.320951 #36845] DEBUG -- : [1m[35m (0.1ms)[0m commit transaction | |
| D, [2016-03-04T13:08:15.321446 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
| D, [2016-03-04T13:08:15.322397 #36845] DEBUG -- : [1m[35mSQL (0.1ms)[0m INSERT INTO "participations" ("user_id") VALUES (?) [["user_id", 2]] | |
| D, [2016-03-04T13:08:15.322704 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mcommit transaction[0m | |
| D, [2016-03-04T13:08:15.323102 #36845] DEBUG -- : [1m[35m (0.0ms)[0m begin transaction | |
| D, [2016-03-04T13:08:15.323836 #36845] DEBUG -- : [1m[36mSQL (0.0ms)[0m [1mINSERT INTO "attempts" ("participation_id", "completed") VALUES (?, ?)[0m [["participation_id", 2], ["completed", "t"]] | |
| D, [2016-03-04T13:08:15.324068 #36845] DEBUG -- : [1m[35m (0.0ms)[0m commit transaction | |
| D, [2016-03-04T13:08:15.324209 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
| D, [2016-03-04T13:08:15.324838 #36845] DEBUG -- : [1m[35mSQL (0.0ms)[0m INSERT INTO "attempts" ("participation_id", "completed") VALUES (?, ?) [["participation_id", 2], ["completed", "f"]] | |
| D, [2016-03-04T13:08:15.325064 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mcommit transaction[0m | |
| D, [2016-03-04T13:08:15.326300 #36845] DEBUG -- : [1m[35mUser Load (0.0ms)[0m SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 2]] | |
| D, [2016-03-04T13:08:15.330448 #36845] DEBUG -- : [1m[36mAttempt Load (0.1ms)[0m [1mSELECT "attempts".* FROM "attempts" INNER JOIN "participations" ON "attempts"."participation_id" = "participations"."id" WHERE "participations"."user_id" = ? AND "attempts"."completed" = ?[0m [["user_id", 2], ["completed", "t"]] | |
| .D, [2016-03-04T13:08:15.330928 #36845] DEBUG -- : [1m[35m (0.0ms)[0m begin transaction | |
| D, [2016-03-04T13:08:15.331407 #36845] DEBUG -- : [1m[36mSQL (0.1ms)[0m [1mINSERT INTO "users" DEFAULT VALUES[0m | |
| D, [2016-03-04T13:08:15.331660 #36845] DEBUG -- : [1m[35m (0.0ms)[0m commit transaction | |
| D, [2016-03-04T13:08:15.332071 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
| D, [2016-03-04T13:08:15.332800 #36845] DEBUG -- : [1m[35mSQL (0.0ms)[0m INSERT INTO "participations" ("user_id") VALUES (?) [["user_id", 3]] | |
| D, [2016-03-04T13:08:15.333039 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mcommit transaction[0m | |
| D, [2016-03-04T13:08:15.333394 #36845] DEBUG -- : [1m[35m (0.0ms)[0m begin transaction | |
| D, [2016-03-04T13:08:15.334015 #36845] DEBUG -- : [1m[36mSQL (0.0ms)[0m [1mINSERT INTO "attempts" ("participation_id", "completed") VALUES (?, ?)[0m [["participation_id", 3], ["completed", "t"]] | |
| D, [2016-03-04T13:08:15.334218 #36845] DEBUG -- : [1m[35m (0.0ms)[0m commit transaction | |
| D, [2016-03-04T13:08:15.334346 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
| D, [2016-03-04T13:08:15.334896 #36845] DEBUG -- : [1m[35mSQL (0.0ms)[0m INSERT INTO "attempts" ("participation_id", "completed") VALUES (?, ?) [["participation_id", 3], ["completed", "f"]] | |
| D, [2016-03-04T13:08:15.335097 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mcommit transaction[0m | |
| D, [2016-03-04T13:08:15.337151 #36845] DEBUG -- : [1m[35mSQL (0.1ms)[0m SELECT DISTINCT "users"."id" FROM "users" LEFT OUTER JOIN "participations" ON "participations"."user_id" = "users"."id" LEFT OUTER JOIN "attempts" ON "attempts"."participation_id" = "participations"."id" AND "attempts"."completed" = ? WHERE "users"."id" = ? LIMIT 1 [["completed", "t"], ["id", 3]] | |
| D, [2016-03-04T13:08:15.338387 #36845] DEBUG -- : [1m[36mSQL (0.2ms)[0m [1mSELECT "users"."id" AS t0_r0, "attempts"."id" AS t1_r0, "attempts"."completed" AS t1_r1, "attempts"."participation_id" AS t1_r2 FROM "users" LEFT OUTER JOIN "participations" ON "participations"."user_id" = "users"."id" LEFT OUTER JOIN "attempts" ON "attempts"."participation_id" = "participations"."id" AND "attempts"."completed" = ? WHERE "users"."id" = ? AND "users"."id" IN (3)[0m [["completed", "t"], ["id", 3]] | |
| .D, [2016-03-04T13:08:15.339208 #36845] DEBUG -- : [1m[35m (0.0ms)[0m begin transaction | |
| D, [2016-03-04T13:08:15.339567 #36845] DEBUG -- : [1m[36mSQL (0.0ms)[0m [1mINSERT INTO "users" DEFAULT VALUES[0m | |
| D, [2016-03-04T13:08:15.339787 #36845] DEBUG -- : [1m[35m (0.0ms)[0m commit transaction | |
| D, [2016-03-04T13:08:15.340083 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
| D, [2016-03-04T13:08:15.340674 #36845] DEBUG -- : [1m[35mSQL (0.0ms)[0m INSERT INTO "participations" ("user_id") VALUES (?) [["user_id", 4]] | |
| D, [2016-03-04T13:08:15.340879 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mcommit transaction[0m | |
| D, [2016-03-04T13:08:15.341170 #36845] DEBUG -- : [1m[35m (0.0ms)[0m begin transaction | |
| D, [2016-03-04T13:08:15.341754 #36845] DEBUG -- : [1m[36mSQL (0.0ms)[0m [1mINSERT INTO "attempts" ("participation_id", "completed") VALUES (?, ?)[0m [["participation_id", 4], ["completed", "t"]] | |
| D, [2016-03-04T13:08:15.341960 #36845] DEBUG -- : [1m[35m (0.0ms)[0m commit transaction | |
| D, [2016-03-04T13:08:15.342075 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
| D, [2016-03-04T13:08:15.342573 #36845] DEBUG -- : [1m[35mSQL (0.0ms)[0m INSERT INTO "attempts" ("participation_id", "completed") VALUES (?, ?) [["participation_id", 4], ["completed", "f"]] | |
| D, [2016-03-04T13:08:15.342758 #36845] DEBUG -- : [1m[36m (0.0ms)[0m [1mcommit transaction[0m | |
| D, [2016-03-04T13:08:15.343061 #36845] DEBUG -- : [1m[35mUser Load (0.0ms)[0m SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 4]] | |
| D, [2016-03-04T13:08:15.343893 #36845] DEBUG -- : [1m[36mParticipation Load (0.2ms)[0m [1mSELECT "participations".* FROM "participations" WHERE "attempts"."completed" = ? AND "participations"."user_id" IN (4)[0m [["completed", "t"]] | |
| E | |
| Finished in 0.056283s, 71.0692 runs/s, 35.5346 assertions/s. | |
| 1) Error: | |
| BugTest#test_included_through: | |
| ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: attempts.completed: SELECT "participations".* FROM "participations" WHERE "attempts"."completed" = ? AND "participations"."user_id" IN (1) | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `initialize' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `new' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `prepare' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:306:in `block in exec_query' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.2.5.2/lib/active_support/notifications/instrumenter.rb:20:in `instrument' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `log' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:293:in `exec_query' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract/database_statements.rb:355:in `select' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract/database_statements.rb:32:in `select_all' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract/query_cache.rb:70:in `select_all' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/querying.rb:39:in `find_by_sql' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:639:in `exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:515:in `load' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:243:in `to_a' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/delegation.rb:46:in `to_ary' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `each_slice' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `load_slices' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:91:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/collection_association.rb:13:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:20:in `run' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:146:in `block (2 levels) in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `block in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:115:in `preloaders_on' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:103:in `block in preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/through_association.rb:14:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/has_many_through.rb:8:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/collection_association.rb:13:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:20:in `run' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:146:in `block (2 levels) in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `block in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:115:in `preloaders_on' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:103:in `block in preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:645:in `block in exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:644:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:644:in `exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:515:in `load' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:243:in `to_a' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:475:in `find_take' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:105:in `take' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:442:in `find_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:423:in `find_with_ids' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:71:in `find' | |
| active_record_gem.rb:84:in `test_included_through' | |
| 2) Error: | |
| BugTest#test_preloaded_through: | |
| ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: attempts.completed: SELECT "participations".* FROM "participations" WHERE "attempts"."completed" = ? AND "participations"."user_id" IN (4) | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `initialize' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `new' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `prepare' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:306:in `block in exec_query' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.2.5.2/lib/active_support/notifications/instrumenter.rb:20:in `instrument' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `log' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:293:in `exec_query' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract/database_statements.rb:355:in `select' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract/database_statements.rb:32:in `select_all' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/connection_adapters/abstract/query_cache.rb:70:in `select_all' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/querying.rb:39:in `find_by_sql' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:639:in `exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:515:in `load' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:243:in `to_a' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/delegation.rb:46:in `to_ary' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `each_slice' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:115:in `load_slices' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:91:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/collection_association.rb:13:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:20:in `run' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:146:in `block (2 levels) in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `block in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:115:in `preloaders_on' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:103:in `block in preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/through_association.rb:14:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/has_many_through.rb:8:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/collection_association.rb:13:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader/association.rb:20:in `run' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:146:in `block (2 levels) in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:144:in `block in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:143:in `preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:115:in `preloaders_on' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:103:in `block in preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/associations/preloader.rb:102:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:645:in `block in exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:644:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:644:in `exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:515:in `load' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation.rb:243:in `to_a' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:475:in `find_take' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:105:in `take' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:442:in `find_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:423:in `find_with_ids' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/relation/finder_methods.rb:71:in `find' | |
| active_record_gem.rb:79:in `test_preloaded_through' | |
| 4 runs, 2 assertions, 0 failures, 2 errors, 0 skips |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| begin | |
| require 'bundler/inline' | |
| rescue LoadError => e | |
| $stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler' | |
| raise e | |
| end | |
| gemfile(true) do | |
| source 'https://rubygems.org' | |
| # Activate the gem you are reporting the issue against. | |
| gem 'activerecord', '4.2.5.2' | |
| gem 'sqlite3' | |
| end | |
| require 'active_record' | |
| require 'minitest/autorun' | |
| require 'logger' | |
| # Ensure backward compatibility with Minitest 4 | |
| Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test) | |
| # This connection will do for database-independent bug reports. | |
| ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') | |
| ActiveRecord::Base.logger = Logger.new(STDOUT) | |
| ActiveRecord::Schema.define do | |
| create_table :users, force: true do |t| | |
| end | |
| create_table :participations, force: true do |t| | |
| t.integer :user_id | |
| end | |
| create_table :attempts, force: true do |t| | |
| t.boolean :completed | |
| t.integer :participation_id | |
| end | |
| end | |
| class User < ActiveRecord::Base | |
| has_many :participations | |
| has_many :attempts, through: :participations | |
| has_many :completed_attempts, -> { completed }, through: :participations, source: :attempts | |
| end | |
| class Participation < ActiveRecord::Base | |
| belongs_to :user | |
| has_many :attempts | |
| end | |
| class Attempt < ActiveRecord::Base | |
| belongs_to :participation | |
| scope :completed, -> { where(completed: true) } | |
| end | |
| class BugTest < Minitest::Test | |
| def setup | |
| @user = User.create | |
| @participation = @user.participations.create | |
| @completed_attempt = @participation.attempts.create do |attempt| | |
| attempt.completed = true | |
| end | |
| @uncompleted_attempt = @participation.attempts.create do |attempt| | |
| attempt.completed = false | |
| end | |
| end | |
| def test_lazy_loaded_through | |
| lazy_loaded_completed_attempts = User.find(@user.id).completed_attempts | |
| assert_equal([@completed_attempt], lazy_loaded_completed_attempts.to_a) | |
| end | |
| def test_eager_loaded_through | |
| eager_loaded_completed_attempts = User.eager_load(:completed_attempts).find(@user.id).completed_attempts | |
| assert_equal([@completed_attempt], eager_loaded_completed_attempts.to_a) | |
| end | |
| def test_preloaded_through | |
| preloaded_completed_attempts = User.preload(:completed_attempts).find(@user.id).completed_attempts | |
| assert_equal([@completed_attempt], preloaded_completed_attempts.to_a) | |
| end | |
| def test_included_through | |
| included_completed_attempts = User.includes(:completed_attempts).find(@user.id).completed_attempts | |
| assert_equal([@completed_attempt], included_completed_attempts.to_a) | |
| end | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Fetching git://github.com/rails/rails.git | |
| Fetching gem metadata from https://rubygems.org/......... | |
| Fetching version metadata from https://rubygems.org/.. | |
| Resolving dependencies.... | |
| Using rake 10.5.0 | |
| Using concurrent-ruby 1.0.1 | |
| Using i18n 0.7.0 | |
| Using minitest 5.8.4 | |
| Using thread_safe 0.3.5 | |
| Using builder 3.2.2 | |
| Using erubis 2.7.0 | |
| Using mini_portile2 2.0.0 | |
| Using json 1.8.3 | |
| Using nio4r 1.2.1 | |
| Using websocket-extensions 0.1.2 | |
| Using mime-types 2.99.1 | |
| Using arel 7.0.0 | |
| Using bundler 1.11.2 | |
| Using method_source 0.8.2 | |
| Using thor 0.19.1 | |
| Using sqlite3 1.3.11 | |
| Using tzinfo 1.2.2 | |
| Using nokogiri 1.6.7.2 | |
| Using rack 2.0.0.alpha | |
| Using websocket-driver 0.6.3 | |
| Using mail 2.6.3 | |
| Using activesupport 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| Using loofah 2.0.3 | |
| Using rack-test 0.6.3 | |
| Using sprockets 3.5.2 | |
| Using rails-deprecated_sanitizer 1.0.3 | |
| Using globalid 0.3.6 | |
| Using activemodel 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| Using rails-html-sanitizer 1.0.3 | |
| Using rails-dom-testing 1.0.7 | |
| Using activejob 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| Using activerecord 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| Using actionview 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| Using actionpack 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| Using actioncable 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| Using actionmailer 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| Using railties 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| Using sprockets-rails 3.0.4 | |
| Using rails 5.0.0.beta3 from git://github.com/rails/rails.git (at master@f8ec3a1) | |
| -- create_table(:users, {:force=>true}) | |
| D, [2016-03-04T13:09:12.298318 #36860] DEBUG -- : [1m[35m (0.3ms)[0m [1m[35mCREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) [0m | |
| -> 0.0169s | |
| -- create_table(:participations, {:force=>true}) | |
| D, [2016-03-04T13:09:12.299050 #36860] DEBUG -- : [1m[35m (0.1ms)[0m [1m[35mCREATE TABLE "participations" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "user_id" integer) [0m | |
| -> 0.0006s | |
| -- create_table(:attempts, {:force=>true}) | |
| D, [2016-03-04T13:09:12.299574 #36860] DEBUG -- : [1m[35m (0.1ms)[0m [1m[35mCREATE TABLE "attempts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "completed" boolean, "participation_id" integer) [0m | |
| -> 0.0005s | |
| D, [2016-03-04T13:09:12.302734 #36860] DEBUG -- : [1m[35m (0.1ms)[0m [1m[35mCREATE TABLE "ar_internal_metadata" ("key" varchar PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) [0m | |
| D, [2016-03-04T13:09:12.309427 #36860] DEBUG -- : [1m[36mActiveRecord::InternalMetadata Load (0.1ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" ORDER BY "ar_internal_metadata"."key" ASC LIMIT ?[0m [["LIMIT", 1]] | |
| D, [2016-03-04T13:09:12.314527 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.315428 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?)[0m [["key", "environment"], ["value", "development"], ["created_at", 2016-03-04 02:09:12 UTC], ["updated_at", 2016-03-04 02:09:12 UTC]] | |
| D, [2016-03-04T13:09:12.315578 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| Run options: --seed 23337 | |
| # Running: | |
| D, [2016-03-04T13:09:12.342719 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.343374 #36860] DEBUG -- : [1m[35mSQL (0.0ms)[0m [1m[32mINSERT INTO "users" DEFAULT VALUES[0m | |
| D, [2016-03-04T13:09:12.343580 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.352576 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.356983 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "participations" ("user_id") VALUES (?)[0m [["user_id", 1]] | |
| D, [2016-03-04T13:09:12.357201 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.358858 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.362034 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "attempts" ("completed", "participation_id") VALUES (?, ?)[0m [["completed", true], ["participation_id", 1]] | |
| D, [2016-03-04T13:09:12.362196 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.362331 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.362992 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "attempts" ("completed", "participation_id") VALUES (?, ?)[0m [["completed", false], ["participation_id", 1]] | |
| D, [2016-03-04T13:09:12.363137 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.368425 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[34mSELECT DISTINCT "users"."id" FROM "users" LEFT OUTER JOIN "participations" ON "participations"."user_id" = "users"."id" LEFT OUTER JOIN "attempts" ON "attempts"."participation_id" = "participations"."id" AND "attempts"."completed" = ? WHERE "users"."id" = ? LIMIT ?[0m [["completed", true], ["id", 1], ["LIMIT", 1]] | |
| D, [2016-03-04T13:09:12.369885 #36860] DEBUG -- : [1m[35mSQL (0.2ms)[0m [1m[34mSELECT "users"."id" AS t0_r0, "attempts"."id" AS t1_r0, "attempts"."completed" AS t1_r1, "attempts"."participation_id" AS t1_r2 FROM "users" LEFT OUTER JOIN "participations" ON "participations"."user_id" = "users"."id" LEFT OUTER JOIN "attempts" ON "attempts"."participation_id" = "participations"."id" AND "attempts"."completed" = ? WHERE "users"."id" = ? AND "users"."id" = 1[0m [["completed", true], ["id", 1]] | |
| .D, [2016-03-04T13:09:12.373114 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.373604 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "users" DEFAULT VALUES[0m | |
| D, [2016-03-04T13:09:12.373793 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.374314 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.375153 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "participations" ("user_id") VALUES (?)[0m [["user_id", 2]] | |
| D, [2016-03-04T13:09:12.375326 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.375784 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.376546 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "attempts" ("completed", "participation_id") VALUES (?, ?)[0m [["completed", true], ["participation_id", 2]] | |
| D, [2016-03-04T13:09:12.376707 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.376825 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.377468 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "attempts" ("completed", "participation_id") VALUES (?, ?)[0m [["completed", false], ["participation_id", 2]] | |
| D, [2016-03-04T13:09:12.377618 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.378711 #36860] DEBUG -- : [1m[36mUser Load (0.1ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?[0m [["id", 2], ["LIMIT", 1]] | |
| D, [2016-03-04T13:09:12.380028 #36860] DEBUG -- : [1m[36mAttempt Load (0.1ms)[0m [1m[34mSELECT "attempts".* FROM "attempts" INNER JOIN "participations" ON "attempts"."participation_id" = "participations"."id" WHERE "participations"."user_id" = ? AND "attempts"."completed" = ?[0m [["user_id", 2], ["completed", true]] | |
| .D, [2016-03-04T13:09:12.380347 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.380744 #36860] DEBUG -- : [1m[35mSQL (0.0ms)[0m [1m[32mINSERT INTO "users" DEFAULT VALUES[0m | |
| D, [2016-03-04T13:09:12.380913 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.381367 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.382126 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "participations" ("user_id") VALUES (?)[0m [["user_id", 3]] | |
| D, [2016-03-04T13:09:12.382293 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.382739 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.383436 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "attempts" ("completed", "participation_id") VALUES (?, ?)[0m [["completed", true], ["participation_id", 3]] | |
| D, [2016-03-04T13:09:12.383587 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.383705 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.384310 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "attempts" ("completed", "participation_id") VALUES (?, ?)[0m [["completed", false], ["participation_id", 3]] | |
| D, [2016-03-04T13:09:12.384455 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.384802 #36860] DEBUG -- : [1m[36mUser Load (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?[0m [["id", 3], ["LIMIT", 1]] | |
| D, [2016-03-04T13:09:12.387956 #36860] DEBUG -- : [1m[36mParticipation Load (0.2ms)[0m [1m[34mSELECT "participations".* FROM "participations" WHERE "attempts"."completed" = ? AND "participations"."user_id" = 3[0m [["completed", true]] | |
| ED, [2016-03-04T13:09:12.388263 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.388657 #36860] DEBUG -- : [1m[35mSQL (0.0ms)[0m [1m[32mINSERT INTO "users" DEFAULT VALUES[0m | |
| D, [2016-03-04T13:09:12.388819 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.389278 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.389991 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "participations" ("user_id") VALUES (?)[0m [["user_id", 4]] | |
| D, [2016-03-04T13:09:12.390146 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.390600 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.391311 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "attempts" ("completed", "participation_id") VALUES (?, ?)[0m [["completed", true], ["participation_id", 4]] | |
| D, [2016-03-04T13:09:12.391458 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.391576 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m | |
| D, [2016-03-04T13:09:12.392182 #36860] DEBUG -- : [1m[35mSQL (0.1ms)[0m [1m[32mINSERT INTO "attempts" ("completed", "participation_id") VALUES (?, ?)[0m [["completed", false], ["participation_id", 4]] | |
| D, [2016-03-04T13:09:12.392322 #36860] DEBUG -- : [1m[35m (0.0ms)[0m [1m[36mcommit transaction[0m | |
| D, [2016-03-04T13:09:12.392660 #36860] DEBUG -- : [1m[36mUser Load (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?[0m [["id", 4], ["LIMIT", 1]] | |
| D, [2016-03-04T13:09:12.393634 #36860] DEBUG -- : [1m[36mParticipation Load (0.2ms)[0m [1m[34mSELECT "participations".* FROM "participations" WHERE "attempts"."completed" = ? AND "participations"."user_id" = 4[0m [["completed", true]] | |
| E | |
| Finished in 0.054200s, 73.8009 runs/s, 36.9005 assertions/s. | |
| 1) Error: | |
| BugTest#test_included_through: | |
| ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: attempts.completed: SELECT "participations".* FROM "participations" WHERE "attempts"."completed" = ? AND "participations"."user_id" = 3 | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `initialize' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `new' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `prepare' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb:243:in `block in exec_query' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:526:in `block in log' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activesupport/lib/active_support/notifications/instrumenter.rb:21:in `instrument' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:520:in `log' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb:227:in `exec_query' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:381:in `select_prepared' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:39:in `select_all' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:70:in `select_all' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/querying.rb:39:in `find_by_sql' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:699:in `exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:580:in `load' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:260:in `records' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/delegation.rb:39:in `to_ary' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `each_slice' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `load_records' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:65:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/collection_association.rb:8:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:19:in `run' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:151:in `block (2 levels) in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `block in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:115:in `preloaders_on' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:102:in `block in preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/through_association.rb:14:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/has_many_through.rb:8:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/collection_association.rb:8:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:19:in `run' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:151:in `block (2 levels) in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `block in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:115:in `preloaders_on' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:102:in `block in preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:705:in `block in exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:704:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:704:in `exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:580:in `load' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:260:in `records' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:525:in `find_take' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:100:in `take' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:475:in `find_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:456:in `find_with_ids' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:66:in `find' | |
| active_record_master.rb:84:in `test_included_through' | |
| 2) Error: | |
| BugTest#test_preloaded_through: | |
| ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: attempts.completed: SELECT "participations".* FROM "participations" WHERE "attempts"."completed" = ? AND "participations"."user_id" = 4 | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `initialize' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `new' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `prepare' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb:243:in `block in exec_query' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:526:in `block in log' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activesupport/lib/active_support/notifications/instrumenter.rb:21:in `instrument' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:520:in `log' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb:227:in `exec_query' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:381:in `select_prepared' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:39:in `select_all' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:70:in `select_all' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/querying.rb:39:in `find_by_sql' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:699:in `exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:580:in `load' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:260:in `records' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/delegation.rb:39:in `to_ary' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `each_slice' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:107:in `load_records' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:65:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/collection_association.rb:8:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:19:in `run' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:151:in `block (2 levels) in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `block in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:115:in `preloaders_on' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:102:in `block in preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/through_association.rb:14:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/has_many_through.rb:8:in `associated_records_by_owner' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/collection_association.rb:8:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader/association.rb:19:in `run' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:151:in `block (2 levels) in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:149:in `block in preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:148:in `preloaders_for_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:115:in `preloaders_on' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:102:in `block in preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `flat_map' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/associations/preloader.rb:101:in `preload' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:705:in `block in exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:704:in `each' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:704:in `exec_queries' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:580:in `load' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation.rb:260:in `records' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:525:in `find_take' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:100:in `take' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:475:in `find_one' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:456:in `find_with_ids' | |
| /Users/tom/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-f8ec3a142fbf/activerecord/lib/active_record/relation/finder_methods.rb:66:in `find' | |
| active_record_master.rb:79:in `test_preloaded_through' | |
| 4 runs, 2 assertions, 0 failures, 2 errors, 0 skips |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| begin | |
| require 'bundler/inline' | |
| rescue LoadError => e | |
| $stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler' | |
| raise e | |
| end | |
| gemfile(true) do | |
| source 'https://rubygems.org' | |
| # Activate the gem you are reporting the issue against. | |
| gem 'rails', github: 'rails/rails' | |
| gem 'sqlite3' | |
| end | |
| require 'active_record' | |
| require 'minitest/autorun' | |
| require 'logger' | |
| # Ensure backward compatibility with Minitest 4 | |
| Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test) | |
| # This connection will do for database-independent bug reports. | |
| ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') | |
| ActiveRecord::Base.logger = Logger.new(STDOUT) | |
| ActiveRecord::Schema.define do | |
| create_table :users, force: true do |t| | |
| end | |
| create_table :participations, force: true do |t| | |
| t.integer :user_id | |
| end | |
| create_table :attempts, force: true do |t| | |
| t.boolean :completed | |
| t.integer :participation_id | |
| end | |
| end | |
| class User < ActiveRecord::Base | |
| has_many :participations | |
| has_many :attempts, through: :participations | |
| has_many :completed_attempts, -> { completed }, through: :participations, source: :attempts | |
| end | |
| class Participation < ActiveRecord::Base | |
| belongs_to :user | |
| has_many :attempts | |
| end | |
| class Attempt < ActiveRecord::Base | |
| belongs_to :participation | |
| scope :completed, -> { where(completed: true) } | |
| end | |
| class BugTest < Minitest::Test | |
| def setup | |
| @user = User.create | |
| @participation = @user.participations.create | |
| @completed_attempt = @participation.attempts.create do |attempt| | |
| attempt.completed = true | |
| end | |
| @uncompleted_attempt = @participation.attempts.create do |attempt| | |
| attempt.completed = false | |
| end | |
| end | |
| def test_lazy_loaded_through | |
| lazy_loaded_completed_attempts = User.find(@user.id).completed_attempts | |
| assert_equal([@completed_attempt], lazy_loaded_completed_attempts.to_a) | |
| end | |
| def test_eager_loaded_through | |
| eager_loaded_completed_attempts = User.eager_load(:completed_attempts).find(@user.id).completed_attempts | |
| assert_equal([@completed_attempt], eager_loaded_completed_attempts.to_a) | |
| end | |
| def test_preloaded_through | |
| preloaded_completed_attempts = User.preload(:completed_attempts).find(@user.id).completed_attempts | |
| assert_equal([@completed_attempt], preloaded_completed_attempts.to_a) | |
| end | |
| def test_included_through | |
| included_completed_attempts = User.includes(:completed_attempts).find(@user.id).completed_attempts | |
| assert_equal([@completed_attempt], included_completed_attempts.to_a) | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment