首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在rails 3.2中使用Rolify in rails可安装引擎?

如何在rails 3.2中使用Rolify in rails可安装引擎?
EN

Stack Overflow用户
提问于 2012-11-08 04:22:53
回答 2查看 435关注 0票数 0

我已经在我的rails应用中使用了cancan和rolify。现在我想使用它们,至少在我的rails可挂载引擎(隔离命名空间)中使用rolify。我努力了,但徒劳无功。我将角色模型放在了models/myengine/和models/中,当之前的操作失败时也是如此。它在角色适配器级别抛出错误,说明是has_role?找不到。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-12-15 00:43:58

我在rolify上也遇到过类似的问题。我也不能让它在可安装的引擎中工作。它看起来就是不能很好地与引擎一起工作。我建议你使用simple_roles gem --这就是我所使用的,在可安装引擎中使用它是没有问题的。

UPDATE Rolify添加了对命名空间的支持,因此该支持不再有效。我已经成功地在我的引擎中使用了它。您现在可以只执行rails g rolify EngineName::Role EngineName::User

票数 2
EN

Stack Overflow用户

发布于 2018-12-22 03:05:52

我正在转换一个工作的Rails 4.2。应用程序集成到引擎中。这些表已经创建为“users”、“roles”和“users_roles”。

要让它在引擎内部工作,用户只需进行以下定制:

代码语言:javascript
运行
复制
rolify role_cname: 'EngineName::Role', role_join_table_name: 'users_roles'

控制台测试:

代码语言:javascript
运行
复制
EngineName::User.last.roles
SELECT  "users".* FROM "users"  ORDER BY "users"."id" DESC LIMIT 1
SELECT "roles".* FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = $1  [["user_id", "xxxx"]]

EngineName::User.last.has_role? :admin
SELECT  "users".* FROM "users"  ORDER BY "users"."id" DESC LIMIT 1
SELECT "roles".* FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = $1 AND (((roles.name = 'admin') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL)))  [["user_id", "xxxx"]]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13277583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档