mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Merge pull request #3600 from vijaydev/migration_arity
Checking the arity of the block passed to create_table
This commit is contained in:
@@ -158,7 +158,13 @@ module ActiveRecord
|
||||
td = table_definition
|
||||
td.primary_key(options[:primary_key] || Base.get_primary_key(table_name.to_s.singularize)) unless options[:id] == false
|
||||
|
||||
td.instance_eval(&blk) if blk
|
||||
if block_given?
|
||||
if blk.arity == 1
|
||||
yield td
|
||||
else
|
||||
td.instance_eval(&blk)
|
||||
end
|
||||
end
|
||||
|
||||
if options[:force] && table_exists?(table_name)
|
||||
drop_table(table_name)
|
||||
|
||||
@@ -1742,6 +1742,21 @@ if ActiveRecord::Base.connection.supports_migrations?
|
||||
ensure
|
||||
Person.connection.drop_table :testings rescue nil
|
||||
end
|
||||
|
||||
def test_create_table_should_not_have_mixed_syntax
|
||||
assert_raise(NoMethodError) do
|
||||
Person.connection.create_table :testings, :force => true do |t|
|
||||
t.string :foo
|
||||
integer :bar
|
||||
end
|
||||
end
|
||||
assert_raise(NameError) do
|
||||
Person.connection.create_table :testings, :force => true do
|
||||
t.string :foo
|
||||
integer :bar
|
||||
end
|
||||
end
|
||||
end
|
||||
end # SexierMigrationsTest
|
||||
|
||||
class MigrationLoggerTest < ActiveRecord::TestCase
|
||||
|
||||
Reference in New Issue
Block a user