Rails迁移报错:wrong number of arguments 问题求助
解决数据库迁移参数不匹配问题
问题定位
错误根源是ArgumentError: wrong number of arguments (given 2, expected 1),明确指向迁移文件20130614160852_add_first_name_last_name_user_type_values_to_user.rb的第3行change方法——该行调用的方法只接受1个参数,但实际传入了2个,导致迁移中断。
修复步骤
- 打开目标迁移文件:
/home/ciaranmurphy/cashanalytics/db/migrate/20130614160852_add_first_name_last_name_user_type_values_to_user.rb,定位第3行代码。 - 检查该行调用的方法(可能是Rails迁移API方法或自定义方法),对照方法的参数定义修正传参:
比如如果是自定义方法add_user_attr(:first_name, :string)但仅支持1个参数,就调整为符合定义的传参方式;如果是误用Rails官方方法导致参数多传,就修正为标准API调用格式。 - 保存文件后重新执行迁移:
Rails 5及以上版本可替换为:rake db:migraterails db:migrate
内容的提问来源于stack exchange,提问作者Ciarán Murphy
相关产品推荐
相关产品推荐

