3

在Railscast中防止批量分配在 Rails 3.1 中不再有效。

给出的错误是:

参数数量错误(1 代表 0)

为了

app/models/user.rb:20:in `mass_assignment_authorizer'
4

2 回答 2

9

如果您尝试在Ryan 的 Railcasts中实现覆盖技术,但使用 Rails 3.1.0,则将模型中的私有 def 重写为:

def mass_assignment_authorizer(role = :default)
 super + (accessible || [])
end

我发现这清除了

wrong number of arguments (1 for 0)

上面的错误(即只是添加(角色=:默认),也与上面的答案相关

于 2011-11-09T20:14:43.020 回答
0

查看源代码,至少在 master 中,mass_assignment_authorizer 有一个默认选项 :default ,如此处所示

您使用的是哪个版本的 rails 3.1?,通过更改您的 Gemfile 可能值得尝试一下:

gem 'rails', :git => 'git@github.com:rails/rails.git'
于 2011-07-24T15:19:41.110 回答