2012-04-19 104 views
3

我需要使用devise爲我的應用創建管理員角色。我已經使用設計創建了基本認證。我在我的應用程序中有一個設計用戶模型,但現在我需要一個能夠顯示編輯並銷燬所有用戶的管理員。我試着按照教程,但沒有一個幫助。 我使用rails 3.0.10和ruby 1.9.2-p290。Rails:使用可以看到所有用戶的devise添加管理員角色

回答

3

你只需通過創建migratioin

 rails g model role name:string 

然後在role.rb

 class Role 
     has_one:user 
     end 

,並在用戶模式

 class user 
     belongs_to :role 
     end 

插入兩個角色到DB

首先定義role.rb
1.admin 
    2.user 

然後通過這個

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

檢查確保插入ROLE_ID:整數到用戶模型

試試吧.......

+0

優秀的解決方案。哈哈,只是注意到這是一個榜樣:P – Zaz 2013-08-17 16:33:25

+0

哦,等等,角色應該是'has_many:users',不應該嗎? – Zaz 2013-08-17 16:44:02

+0

它根據您的需要。 – Kashiftufail 2013-08-17 16:57:22

1

我也有類似的要求,因爲你的,也不要」不希望任何用戶能夠註冊。所有這些都將由Admin管理。她所做的一切。

我添加了名爲管理員

rails generate devise MODEL 

禁用 '可註冊' 用戶模式,使用戶無法通過自理singup

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! 

希望這有助於。

+0

謝謝,我想我得到的解決方案將發佈它! – Aayush 2012-04-20 06:06:50

相關問題