【问题标题】:rails cancan roles?rails canscan 角色?
【发布时间】:2012-03-05 21:56:44
【问题描述】:

我将 devise 用于我的身份验证系统,而 cancan 用于权限。我正在添加角色,并且我正在尝试拥有它,因此当用户注册时,他将自动被分配一个角色。我看了ryan bate screencast,还关注了devise & cancan tutorial

如何在不使用复选框的情况下实现这一点,并根据用户注册的时间自动为其分配角色。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 devise cancan


    【解决方案1】:

    您可以尝试使用回调:http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

    before_create 回调可能是您想要的用户模型:

    class User < ActiveRecord::Base
      before_create :set_default_roles
      private
        def set_default_roles
          self.roles = ['Default user']
        end
    end
    

    【讨论】:

      【解决方案2】:

      AR::Callbacks 为您解决问题,但我更喜欢在用户对象首次初始化时设置角色:

      class Role < ActiveRecord::Base
      end
      
      class User < ActiveRecord::Base
        after_initialize :set_default_roles
      
        private
          def set_default_roles
            self.roles = self.roles || [Role.find_by_name('Default Role')]
          end
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-26
        相关资源
        最近更新 更多