Rails: добавление роли администратора с помощью devise, который может видеть всех пользователей

Мне нужно создать роль администратора, используя devise для моего приложения. Я создал базовую аутентификацию с использованием устройства devise. У меня есть разработанная пользовательская модель в моем приложении, но теперь мне нужен администратор, который может показать редактирование и уничтожить всех пользователей. Я пытался следовать учебникам, но ни один из них не помог. Я использую рельсы 3.0.10 и ruby 1.9.2-p290.

Ответы на вопрос(2)

Решение Вопроса

      rails g model role  name:string

тогда в role.rb

      class Role
         has_one:user
      end

И в модели пользователя

      class user
         belongs_to :role
      end

Вставьте две роли в БД

   1.admin
   2.user

Затем проверьте это

    if user.role.name == "admin"  
        # can do all your logic
    else
         your logic
    end

Убедитесь, что вставьте role_id: integer в модель пользователя

Попытайся.......

 17 авг. 2013 г., 18:57
Это в соответствии с вашими потребностями.
 17 авг. 2013 г., 18:33
Отличное решение. Ха-ха, только что заметил, что это образец для подражания: P
 17 авг. 2013 г., 18:44
Ой, подождите, Роль должна бытьhas_many :usersне так ли?

как и у вас, и я также не хочу, чтобы какой-либо пользователь мог зарегистрироваться. Все это позаботится Админ. Это то, что я сделал.

Я добавил еще одну модель под названием Admin

rails generate devise MODEL

Отключить «Регистрируемый» для модели User, чтобы пользователь не мог самостоятельно подписаться

user.rb

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :registerable,    :timeoutable and :omniauthable
  devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name,  :last_name, :role, :admin
  # attr_accessible :title, :body
end

Включите CRUD для пользователя, используя пример отсюда:https://gist.github.com/1056194

Наконец-то защитить защитить пользователей контроллер, как это так

users_controller.rb

# Add this
before_filter :authenticate_admin!

Надеюсь это поможет.

 Aayush20 апр. 2012 г., 08:06
спасибо, я думаю, что я получил решение опубликует его !!!

Ваш ответ на вопрос