带CanCan的导轨可安装引擎

时间:2012-07-16 20:59:21

标签: ruby-on-rails cancan rails-engines

我正在开发一个博客引擎,我不想设置康康舞。我找到了一些方法:

forem通过在主机用户模型中添加管理字段来实现这一目标,但是具有多个角色需要很多字段,这绝对不是这样做的方式

我看到了一些像this这样的exames,但为了做到这一点,我需要让我的主机应用用户模型与我的引擎模型具有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方法返回用户的所有角色

1 个答案:

答案 0 :(得分: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方法返回用户的所有角色