Rails 3.1 - 访问主应用程序模型从可安装引擎

4
我想创建一个父应用程序来处理用户认证。然后,我想创建各种可挂载引擎(如博客、联系人目录等),根据需要添加。这意味着我需要从可挂载引擎访问用户认证数据(管理员权限等)。
我想知道是否可以以及如何实现这一点,因为很明显,引擎模型可以在父应用程序中被访问,但反过来不行。
当在这里提出这个问题时,给出的答案展示了如何获取所有数据,但不包括来自帮助程序的内容(如current_user)。
当在这里提出这个问题时,似乎涵盖了命名空间,而不是如何访问函数和变量(除非我漏掉了什么)。
任何帮助都将不胜感激。
1个回答

1
按设计,可装载引擎与其父引擎是相互隔离的。然而,在理论上您可以通过使用ActiveResource或类似的方式,通过REST API暴露部分父引擎的功能。您也可以使用“完整引擎”,它类似于插件而不是可装载引擎 - Rails 3.1:引擎 vs. 可装载应用

我已经阅读了那些文章,并在看到你的回答后再次阅读了它们。你说得对,似乎在“完整引擎”中事情更加“暴露”,而且我的引擎并不是独立的应用程序。但是,将它们分别命名空间化并具有自己的JavaScript和CSS文件并被视为独立的,这不是更直观吗? - Theo Scholiadis
1
也许吧,但这似乎是一个观点问题。您可以使用命名空间路由的“完整引擎”方法来实现类似的功能,并添加钩子将迁移和资产(JS、CSS、图像)从引擎复制到父目录作为 rake/capistrano 任务的一部分,在部署之前。流行的“spree”宝石就是这样做的,对我来说效果还不错。 - PinnyM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接