我有authlogic工作正常但现在需要让管理员用户进来并拥有不同的访问权限。
所以我创建了一个迁移,将administrator
列添加到Users
表中作为字符串。但是,我似乎无法获得它的价值!!
请参阅下面的索引操作:
print "\n administrator" + User.find(current_user.id).administrator.to_s
当我知道此用户在数据库中将administrator
字符串设置为true
时,上述行永远不会打印任何内容。
以下是用户模型
class User < ActiveRecord::Base
acts_as_authentic {|config|
config.validates_uniqueness_of_email_field_options :scope => :id
}
belongs_to :another_class
end
我在这里做错了什么?我想要做的就是获取管理员列值。在日志中,我可以看到正在运行select users.* from users where id = 2
查询!
还有另一种使用authlogic管理管理员角色的最佳方法吗?
答案 0 :(得分:1)
最好使用cancan来管理角色和权限。它可以与authlogic结合使用。
如果您只是在用户记录中添加一个标记“administrator”字段,只要您的规则很简单,它就应该有效,但是作为布尔值而不是字符串会更好。
答案 1 :(得分:0)
您说数据库中有一个“管理员”字符串列,您正在寻找值true。也许你想要一个布尔列?