Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unless File.exist?('Gemfile')
- File.write('Gemfile', <<-GEMFILE)
- source 'https://rubygems.org'
- gem 'rails', github: 'rails/rails'
- gem 'arel', github: 'rails/arel'
- gem 'sqlite3'
- GEMFILE
- system 'bundle'
- end
- require 'bundler'
- Bundler.setup(:default)
- require 'active_record'
- require 'minitest/autorun'
- require 'logger'
- # 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 :posts do |t|
- end
- create_table :comments do |t|
- t.integer :post_id
- end
- end
- class Post < ActiveRecord::Base
- has_many :comments
- end
- class Comment < ActiveRecord::Base
- belongs_to :post
- end
- class BugTest < Minitest::Test
- def test_null_relation_in_direct_and_association_subquery
- post = Post.create!
- post.comments << Comment.create!
- assert_equal 1, Post.count
- # Direct
- assert_equal 0, Post.none.count
- # assert_equal 0, Post.where(id: Post.none).count
- # Select parent with children condition
- assert_equal 0, Post.includes(:comments).references(:comments).where(comments: {id: Comment.none}).count
- # Select children with children condition
- assert_equal 0, post.comments.none.count
- assert_equal 0, post.comments.where(comments: {id: Comment.none}).count
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement