Rails ruby-china 里面 user 对象里面包含了 admin,但是我却找不到定义在哪里。 我理解不了 admin role 是哪里来的,有知道的可以帮我解答下吗,谢谢你了

zhzenghui · 2014年11月04日 · 最后由 zhzenghui 回复于 2014年11月04日 · 2760 次阅读

ruby-china 里面 user 对象里面包含了 admin,但是我却找不到定义在哪里。我理解不了 admin 是哪里来的,有知道的可以帮我解答下吗,谢谢你了 ruby-china 里面 user 对象里面包含了 admin,但是我却找不到定义在哪里。我理解不了 admin 是哪里来的, 也没有保存用户角色的字段。李大大使用 cancan 来实现管理的,但是一个 has_role?(role) 就把我搞懵了。role 也是没有存在的字段。

有知道的可以帮我解答下吗,谢谢你了

不知道你所谓的 ruby-china 里的 user 对象指的是什么?

def admin?
  Setting.admin_emails.include?(self.email)
end

如果 user 的 email 被登记为管理员的 email 则该用户为管理员

很久以前,第一次看到这样设置管理员的时候,我很吃惊!!!

#1 楼 @JIAZHEN 哦,我表达不好,user 类,里面没有关于 admin 的数据字段,应该是这个意思了。也没有保存用户角色的字段。李大大使用 cancan 来实现管理的,但是一个 has_role?(role) 就把我搞懵了。

#2 楼 @kepaning 我尝试了 user.admin 但是输出是错误的。这是怎么回事呢。

#3 楼 @badboy 那就一起寻找答案吧。

#6 楼 @zhzenghui 2 楼代码已给出解释,具体可参考 ruby-china 代码 https://github.com/ruby-china/ruby-china/blob/master/app/models/user.rb#L133

#3 楼 @badboy 其实这种方式也还 ok 啦,其实就是和写死一样~因为管理员不经常改动的,再说现在 reload server 还不是 cap 一下,也不会有 down time.~

has_role? 是另一个 gem 提供的功能: rolify

#5 楼 @zhzenghui 因为 user 没有 admin 方法啊,只定义了 admin? 方法

#8 楼 @lyfi2003 但是我没有找到它 引入了 rolify 啊,这是怎么回事呢?

#9 楼 @kepaning 哦抱歉,oc 程序对于 admin? 理解起来确实难一点。管理员相对来说好理解些,那对于 rubychina 是怎么保存用户权限的呢。完全没有 role 这个数据存在

#7 楼 @small_fish__ 其实我更感兴趣的是 它是怎么实现权限管理的,role 这东西完全找不到存在啊。site_editor wiki_editor 是完全不知道怎么存在。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号