我已在我的博客应用程序中实现了声明性授权。现在,我有三个布局,分别用于Admin,Authenticated User和guest用户。所以我需要检查在特定时间使用该应用程序的用户类型。我们有用户模型,角色模型和分配模型。
User.rb
class User < ActiveRecord::Base
attr_accessible :login, :email, :password, :password_confirmation, :role_ids
has_many :articles
has_many :comments
has_many :assignments
has_many :roles, :through => :assignments
def role_symbols
roles.map do |role|
role.name.underscore.to_sym
end
end
acts_as_authentic do |c|
c.login_field = :login
end
def deliver_password_reset_instructions!
reset_perishable_token!
Notifier.deliver_password_reset_instructions(self)
end
end
Assignment.rb
class Assignment < ActiveRecord::Base
belongs_to :user
belongs_to :role
end
Role.rb
class Role < ActiveRecord::Base
attr_accessible :name
has_many :assignments
has_many :users, :through => :assignments
end
任何解决方案?
答案 0 :(得分:0)
您可以使用此gem简化您的结构: https://github.com/platform45/easy_roles 按照github上的说明进行修改,然后修改模型。 这很简单,只需几步。你只需要你的用户模型就可以了!
此外,我会推荐康康宝石(https://github.com/ryanb/cancan)。
easy_roles和cancan是很容易定义角色和权限的好组合!