rails not method gema función for español ejemplos cuál could ruby-on-rails devise

ruby on rails - not - Crear un usuario administrador en Devise on Rails beta 3



devise rails español (6)

Ok, probablemente me voy a sentir bastante tonto cuando alguien responda a esto con una simple cosa que me falta pero ... aquí va:

Tengo una nueva aplicación en Rails 3 beta y estoy usando el dispositivo para la autenticación. He ejecutado todos los comentarios y todo está funcionando perfectamente en este momento. Creé un rol de usuario y un rol de administrador (siguiendo estas instrucciones: https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-Role ) y me he registrado como el primer usuario, pero ¿cómo puedo registrarme o crear un usuario de rol de administrador? Las instrucciones de los chicos de diseño configuraron el rol de administrador para que no sea registrable pero no estoy seguro de cómo se supone que debes crear el administrador si no puedes registrarte?

¡Cualquier ayuda sería apreciada! ¡Gracias!


@Stewart Estás en lo cierto. El uso de un indicador de administración en el modelo de usuario es aceptable y aún puede coexistir con muchas opciones de autorización. Eche un vistazo a la clase de Capacidad en los documentos cancan para ver un ejemplo de cómo podría verse esto:

def initialize(user) if user.admin? can :manage, :all else can :read, :all end end

Tener varios modelos de autorización puede ser útil si la funcionalidad es realmente diferente o si los requisitos para la autorización, como agregar un subdominio a las teclas de autenticación, son diferentes.

Otro enfoque es agregar una relación de roles HABTM a su usuario. Aquí hay un buen tutorial de Tony Amoyal: http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-and-cancan-customizing-devise-controllers/


Es posible que esto no se aplique a Devise (pero creo que sí), pero en general, si desea iniciar un usuario administrador pero no desea almacenar su contraseña de administrador en el control de código fuente, puede hacer algo como esto ...

@user = User.find_by_email("[email protected]") unless @user # We are going to bypass both our assignment protection and validation # so we aren''t storing the password in source control. # # This doesn''t replace the need to change the password occasionaly, both # on the site and in source control. @user = User.create do |u| u.name = "Admin User" u.email = "[email protected]" u.password_digest = "$2a$10$DUv/IUiLB34jhi3j4Z8MwwcaDlBmFe3rvcdXSzPKLzBOAMmD53UqW" end @user.save(:validate => false) # TODO make the user an admin end

Puede crear el usuario localmente con la contraseña que desea para encontrar el password_digest.


Hay una forma conveniente de db/seed.rb tablas: archivo db/seed.rb Simplemente agregue la secuencia de comandos para crear usuarios y ejecutar:

rake db:seed

A continuación puede ver un ejemplo de modelo de User con campos de email y username :

# Inserting default security users users = { admin: { username: ''admin'', email: ''[email protected]'', password: ''adminpass'', password_confirmation: ''adminpass'', is_admin: true }, administrator: { username: ''administrator'', email: ''[email protected]'', password: ''administrator'', password_confirmation: ''administrator'', is_admin: true } } users.each do |user, data| user = User.new(data) unless User.where(email: user.email).exists? user.save! end end

Tenga en cuenta que las validaciones de diseño se aplican aquí.

Here puede encontrar más ejemplos del uso del archivo seed.rb y here está el molde de rieles rayn.


Lo que realmente estás tratando de hacer es crear datos iniciales. Una forma más estándar de hacer esto sería agregar a sus usuarios iniciales (y roles, si los está almacenando) a db / seeds.rb

Por ejemplo, en db / seeds.rb:

roles = Role.create([{name: ''super_admin''}, {name: ''staff''}, {name:''customer''}]) users = User.create([{email: ''[email protected]'', first_name: ''super'', last_name: ''admin'', password: ''@dmin123'', password_confirmation: ''@dmin123'', role: roles[0]}])

Entonces corre:

rake db:seed


Sip. Me siento tonto.

Si alguien más está teniendo un momento igualmente insulso. Solo usa la consola de rieles para crear el usuario administrador:

➡ rails c Loading development environment (Rails 3.0.0.beta3) irb(main):001:0> admin = Admin.create! do |u| irb(main):002:1* u.email = ''[email protected]'' irb(main):003:1> u.password = ''password'' irb(main):004:1> u.password_confirmation = ''password'' irb(main):005:1> end

Eso lo hará Ahora solo visite la ruta de inicio de sesión de administrador e inicie sesión.