Skip to content

Instantly share code, notes, and snippets.

@maletor
Created March 8, 2016 22:24
Show Gist options
  • Save maletor/e3b48a8180931b8d9844 to your computer and use it in GitHub Desktop.
Save maletor/e3b48a8180931b8d9844 to your computer and use it in GitHub Desktop.
1) Error:
BugTest#test_after_save:
RuntimeError: self and other are not the same object
/Users/maletor/Desktop/test.rb:39:in `block in <class:Comment>'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activesupport/lib/active_support/callbacks.rb:396:in `instance_exec'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activesupport/lib/active_support/callbacks.rb:396:in `block in make_lambda'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activesupport/lib/active_support/callbacks.rb:207:in `block in halting_and_conditional'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activesupport/lib/active_support/callbacks.rb:456:in `block in call'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activesupport/lib/active_support/callbacks.rb:456:in `each'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activesupport/lib/active_support/callbacks.rb:456:in `call'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activesupport/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activesupport/lib/active_support/callbacks.rb:750:in `_run_save_callbacks'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/callbacks.rb:298:in `create_or_update'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/persistence.rb:152:in `save!'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/validations.rb:50:in `save!'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/attribute_methods/dirty.rb:30:in `save!'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/transactions.rb:324:in `block in save!'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/transactions.rb:395:in `block in with_transaction_returning_status'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:231:in `transaction'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/transactions.rb:211:in `transaction'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/transactions.rb:392:in `with_transaction_returning_status'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/transactions.rb:324:in `save!'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/suppressor.rb:45:in `save!'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/has_many_association.rb:46:in `insert_record'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/collection_association.rb:519:in `block (2 levels) in _create_record'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/collection_association.rb:430:in `replace_on_target'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/collection_association.rb:423:in `add_to_target'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/collection_association.rb:517:in `block in _create_record'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/collection_association.rb:203:in `block in transaction'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:233:in `block in transaction'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:189:in `within_new_transaction'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:233:in `transaction'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/transactions.rb:211:in `transaction'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/collection_association.rb:202:in `transaction'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/collection_association.rb:516:in `_create_record'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/has_many_association.rb:136:in `_create_record'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/collection_association.rb:176:in `create!'
/Users/maletor/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rails-da1fecce32db/activerecord/lib/active_record/associations/collection_proxy.rb:341:in `create!'
/Users/maletor/Desktop/test.rb:50:in `test_after_save'
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'
gem 'rails', github: 'rails/rails'
gem 'sqlite3'
end
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, force: true do |t|
end
create_table :comments, force: true do |t|
t.integer :post_id
end
end
class Post < ActiveRecord::Base
has_many :comments, inverse_of: :post
end
class Comment < ActiveRecord::Base
belongs_to :post, inverse_of: :comments
after_save do
raise 'self and other are not the same object' unless equal?(post.comments.first)
end
end
class BugTest < Minitest::Test
def test_after_save
post = Post.create!
comment = post.comments.build
comment.save!
post = Post.create!
post.comments.create!
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment