0
votes

Using Devise, I created the user model, and later I added an :admin field with default => false to my model using a migration. Now I need to manually create an admin user ,so in the rails console I tried : superadmin = User.create({ :email => '[email protected]', :password => '12345678' , :admin=> true }) but getting the error below :

ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: admin from /var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active_model/mass_assignment_security/sanitizer.rb:48:in process_removed_attributes' from /var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active_model/mass_assignment_security/sanitizer.rb:20:indebug_protected_attribute_removal' from /var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active_model/mass_assignment_security/sanitizer.rb:12:in sanitize' from /var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active_model/mass_assignment_security.rb:230:insanitize_for_mass_assignment' from /var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/attribute_assignment.rb:75:in assign_attributes' from /var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/base.rb:498:ininitialize' from /var/lib/gems/1.9.1/gems/devise-2.2.4/lib/devise/models/confirmable.rb:46:in initialize' from /var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/persistence.rb:44:innew' from /var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/persistence.rb:44:in create' from (irb):4 from /var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:47:instart' from /var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in start' from /var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:41:in' from script/rails:6:in require' from script/rails:6:in'

so is there another way of creating users manually?(using command)

1

1 Answers

1
votes

You're trying to assign a value to admin, but it's currently not accessible to assignment. To fix this, you need to declare the admin attribute attr_accessible:

# app/models/user.rb
class User < ActiveRecord::Base
    attr_accessible :admin
end

This will enable you to create a new user in the precise fashion you've depicted.