在Railscast中防止批量分配在 Rails 3.1 中不再有效。
给出的错误是:
参数数量错误(1 代表 0)
为了
app/models/user.rb:20:in `mass_assignment_authorizer'
在Railscast中防止批量分配在 Rails 3.1 中不再有效。
给出的错误是:
参数数量错误(1 代表 0)
为了
app/models/user.rb:20:in `mass_assignment_authorizer'
如果您尝试在Ryan 的 Railcasts中实现覆盖技术,但使用 Rails 3.1.0,则将模型中的私有 def 重写为:
def mass_assignment_authorizer(role = :default)
super + (accessible || [])
end
我发现这清除了
wrong number of arguments (1 for 0)
上面的错误(即只是添加(角色=:默认),也与上面的答案相关
查看源代码,至少在 master 中,mass_assignment_authorizer 有一个默认选项 :default ,如此处所示。
您使用的是哪个版本的 rails 3.1?,通过更改您的 Gemfile 可能值得尝试一下:
gem 'rails', :git => 'git@github.com:rails/rails.git'