aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-02-10 08:34:37 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-02-10 08:43:18 +0900
commitc83254db7ad2dbcc73b3eb1e103ba2bae666ab91 (patch)
tree5d275fcfbbef1c3bcccbfbb2d355ab62ac9a7dae /activerecord
parentea0eaced55465ce8054cf54ff583d75272bd8505 (diff)
parent0914ea8477aab6620983cee9b51be4c2c574705f (diff)
downloadrails-c83254db7ad2dbcc73b3eb1e103ba2bae666ab91.tar.gz
rails-c83254db7ad2dbcc73b3eb1e103ba2bae666ab91.tar.bz2
rails-c83254db7ad2dbcc73b3eb1e103ba2bae666ab91.zip
Merge pull request #35203 from chiastolite/add_column_without_column_names
Do not allow to add column without column name
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb1
-rw-r--r--activerecord/test/cases/migration/columns_test.rb11
2 files changed, 12 insertions, 0 deletions
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 dfb4953cbd..198898b764 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
@@ -229,6 +229,7 @@ module ActiveRecord
column_types.each do |column_type|
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def #{column_type}(*names, **options)
+ raise ArgumentError, "Missing column name(s) for #{column_type}" if names.empty?
names.each { |name| column(name, :#{column_type}, options) }
end
RUBY
diff --git a/activerecord/test/cases/migration/columns_test.rb b/activerecord/test/cases/migration/columns_test.rb
index cedd9c44e3..1c66c8186f 100644
--- a/activerecord/test/cases/migration/columns_test.rb
+++ b/activerecord/test/cases/migration/columns_test.rb
@@ -318,6 +318,17 @@ module ActiveRecord
ensure
connection.drop_table(:my_table) rescue nil
end
+
+ def test_add_column_without_column_name
+ e = assert_raise ArgumentError do
+ connection.create_table "my_table", force: true do |t|
+ t.timestamp
+ end
+ end
+ assert_equal "Missing column name(s) for timestamp", e.message
+ ensure
+ connection.drop_table :my_table, if_exists: true
+ end
end
end
end