Skip to content

Instantly share code, notes, and snippets.

@jrafanie
Last active May 6, 2016 16:20
Show Gist options
  • Save jrafanie/91e1e99a2e64e4606dcbd9ebf3683456 to your computer and use it in GitHub Desktop.
Save jrafanie/91e1e99a2e64e4606dcbd9ebf3683456 to your computer and use it in GitHub Desktop.
t.references polymorphic: true, index: true changes from 4.0, 4.1, 4.2, 5.0.0.beta4
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', '~>4.2.0'
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:')
logger = Logger.new(STDOUT)
logger.level = 1
ActiveRecord::Base.logger = logger
ActiveRecord::Schema.define do
create_table :posts, force: true do |t|
end
create_table :comments, force: true do |t|
t.references :resource, polymorphic: true, index: true
end
end
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
end
puts "Rails version: " + Rails.version
ActiveRecord::SchemaDumper.dump
# Rails version: 4.0.13
ActiveRecord::Schema.define(version: 0) do
create_table "comments", force: true do |t|
t.integer "resource_id"
t.string "resource_type"
end
add_index "comments", ["resource_id", "resource_type"], name: "index_comments_on_resource_id_and_resource_type"
create_table "posts", force: true do |t|
end
end
# Rails version: 4.1.15
ActiveRecord::Schema.define(version: 0) do
create_table "comments", force: true do |t|
t.integer "resource_id"
t.string "resource_type"
end
add_index "comments", ["resource_id", "resource_type"], name: "index_comments_on_resource_id_and_resource_type"
create_table "posts", force: true do |t|
end
end
# Rails version: 4.2.6
ActiveRecord::Schema.define(version: 0) do
create_table "comments", force: :cascade do |t|
t.integer "resource_id"
t.string "resource_type"
end
add_index "comments", ["resource_type", "resource_id"], name: "index_comments_on_resource_type_and_resource_id"
create_table "posts", force: :cascade do |t|
end
end
# Rails version: 5.0.0.beta4
ActiveRecord::Schema.define(version: 0) do
create_table "comments", force: :cascade do |t|
t.string "resource_type"
t.integer "resource_id"
t.index ["resource_type", "resource_id"], name: "index_comments_on_resource_type_and_resource_id"
end
create_table "posts", force: :cascade do |t|
end
end
# Rails version: 5.0.0.beta4
ActiveRecord::Schema.define(version: 0) do
create_table "comments", force: :cascade do |t|
t.integer "resource_id"
t.string "resource_type"
t.index ["resource_id", "resource_type"], name: "index_comments_on_resource_id_and_resource_type"
end
create_table "posts", force: :cascade do |t|
end
end
From e3b0a3615aa9341ce92be681e1d860deb1259b3e Mon Sep 17 00:00:00 2001
From: Joe Rafaniello <[email protected]>
Date: Fri, 6 May 2016 11:20:01 -0400
Subject: [PATCH] PAUSED: Use `git resume` to continue working.
---
.../active_record/connection_adapters/abstract/schema_definitions.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
index bbb0e92..a7d0987 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
@@ -129,7 +129,7 @@ def foreign_key_options
def columns
result = [[column_name, type, options]]
if polymorphic
- result.unshift(["#{name}_type", :string, polymorphic_options])
+ result << ["#{name}_type", :string, polymorphic_options]
end
result
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment