Отказ от ответственности: я использую Rails 3.2. В частности, в книге «Rails 3 в действии»:
Модель пользователя имеет attr_accessible attr_accessible :email, :password, password_confirmation, :remember_me
Модель пользователя НЕ имеет :admin в списке, поэтому она не может быть массово назначена как часть params[:user].
The form_for block inside app/views/admin/users/_form.html.erb sets up a checkbox element to allow an admin to set a user as an admin:
` <%= f.check_box :admin %> <%= f.label :admin, "Is an admin?" %>
Приложение/controllers/admin/users_controller.rb
@user = User.new(params[:user])
@user.admin = params[:user][:admin] == "1"
if @user.save
Строка @user.admin = params[:user][:admin] == "1" должна установить для атрибута admin значение true, но генерирует ошибки массового назначения, которые не позволяют мне изменить атрибут @user.admin на true.
Я могу установить для атрибута admin значение true без массового назначения через консоль, а также определить метод в модели пользователя:
def make_admin
self.admin = true
end
Это выполняет то же самое, ничего особенного.
Как мне установить для атрибута администратора значение TRUE, чтобы пользователь мог работать с представлением и контроллером с помощью флажка?
Есть ли способ удалить или отделить параметр admin от params[:user][:admin])?