Skip to content

Instantly share code, notes, and snippets.

@shunwen
Last active August 29, 2015 14:01
Show Gist options
  • Save shunwen/99b89c495eea5ad24079 to your computer and use it in GitHub Desktop.
Save shunwen/99b89c495eea5ad24079 to your computer and use it in GitHub Desktop.
# Activate the gem you are reporting the issue against.
gem 'activerecord', '4.1.1'
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.references :commentable, polymorphic: true
end
end
class Post < ActiveRecord::Base
has_many :comments, as: :commentable
end
class Comment < ActiveRecord::Base
belongs_to :commentable, polymorphic: true
end
class BugTest < Minitest::Test
def test_polymorphic_chained_association_reference
post = Post.new
post.comments.new
comment = post.comments.first
assert_equal post, comment.commentable
end
end
# Non-polymorphic example
# ActiveRecord::Schema.define do
# create_table :posts do |t|
# end
# create_table :comments do |t|
# t.references :post
# end
# end
# class Post < ActiveRecord::Base
# has_many :comments
# end
# class Comment < ActiveRecord::Base
# belongs_to :post
# end
# class BugTest < Minitest::Test
# def test_non_polymorphic_chained_association_reference
# post = Post.new
# post.comments.new
# comment = post.comments.first
# assert_equal post, comment.post
# end
# end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment