Лучший способ - установить его напрямую, а затем сохранить модель:
user = User.find(1)
user.admin = true
user.save
Весь смысл защищенных атрибутов состоит в том, что вам не нужно постоянно беспокоиться об их фильтрации при выполнении таких операций, как @user.update_attributes(params[:user])
, которые в противном случае могут превратить не-администратора в администратора или что-то в этом роде. Использование update_all
также предотвратит запуск проверок, что почти наверняка не то, что вам нужно.
edit: похоже, что это для миграции, поэтому я бы просто использовал update_all или что-то еще и не слишком беспокоился об этом. Миграции выполняются один раз для каждой среды, а затем никогда больше, поэтому не переживайте слишком сильно.