1

我正在开发一个博客引擎,我不想设置 cancan。我找到了一些方法来做到这一点:

forem通过在主机用户模型中添加一个管理字段来解决问题,但是拥有多个角色需要很多字段,这绝对不是这样做的方法

我看到了一些这样考试,但要做到这一点,我需要让我的主机应用程序用户模型与我的引擎模型有 has_many 关系,就像这样

class User < ActiveRecord::Base
    attr_accessible :name
    has_many Blogcms::RoleUser
    has_many Blogcms::Role, :through => Blogcms::RoleUser
end

我真的不知道这是否是正确的方法,但这不会起作用,因为作为一个孤立的引擎,引擎模型将是不可见的

有人试过这个吗?对不起我的英语不好

编辑

我找到了一种方法,不必搜索用户模型,只需在我的角色模型中设置关系

module Blogcms
  class Role < ActiveRecord::Base

    has_many :role_user
    has_many :user, :class_name =>  Blogcms.user_class, :through => :role_user

    attr_accessible :name

    # Return all the roles for a user
    def self.roles_for_user(user)
        joins(:user).where('users.id' => user.id)
    end

  end
end

像这样我的 roles_for_user 方法返回用户的所有角色

4

1 回答 1

1

我找到了一种方法,不必搜索用户模型,只需在我的角色模型中设置关系

module Blogcms
  class Role < ActiveRecord::Base

    has_many :role_user
    has_many :user, :class_name =>  Blogcms.user_class, :through => :role_user

    attr_accessible :name

    # Return all the roles for a user
    def self.roles_for_user(user)
        joins(:user).where('users.id' => user.id)
    end

  end
end

像这样我的 roles_for_user 方法返回用户的所有角色

于 2012-09-28T16:43:42.830 回答