Rails 3.2:ArgumentError:创建时参数数量错误(2表示1)

时间:2012-01-20 14:16:51

标签: ruby-on-rails-3.2

尝试创建模型的实例,我收到以下错误......

u = User.create
# or .where(...).first_or_create
# or .where(...).first_or_initialize
ArgumentError: wrong number of arguments (2 for 1)

是否有人对Rails 3.2有同样的问题?

1 个答案:

答案 0 :(得分:17)

您是否超载了模型的initialize方法?在我的情况下,我用它重载了它:

def initialize(attributes=nil)
    ...
end

我必须解决这个问题:

def initialize(attributes = nil, options = {})
    ...
end

在Rails 3.2中,提交7c5ae0a88fc9406857ee362c827c57eb23fd5f95(增加了质量分配安全性:as和:对AR.new的支持:no_protection)为上述方法添加了更多参数,这就是我之前的实现失败的原因。