Изменения в mass_assignment_authorizer вызывают ошибки в Ruby on Rails 3.1 - PullRequest
3 голосов
/ 24 июля 2011

Защита от массового назначения, как в этом railscast , больше не работает в Rails 3.1.

Ошибка:

неверное количество аргументов (1 для 0)

для

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

Ответы [ 2 ]

9 голосов
/ 10 ноября 2011

Если вы пытаетесь реализовать метод переопределения в Ryan's Railcasts , но с использованием Rails 3.1.0, то переписать private def в модели:

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

Я обнаружил, что это очищено

wrong number of arguments (1 for 0)

ошибка выше (т.е. просто добавление (role =: default), а также коррелирует с ответом выше

0 голосов
/ 24 июля 2011

Глядя в источник, кажется, что, по крайней мере в master, есть опция по умолчанию: default для mass_assignment_authorizer, как видно here .

Какую версию rails 3.1 вы используете?, может быть стоит попробовать это против головы, изменив свой Gemfile:

gem 'rails', :git => 'git@github.com:rails/rails.git'
...