【发布时间】:2012-08-09 16:37:17
【问题描述】:
我已经阅读了很多关于该主题的内容,但似乎没有什么能完全满足我的需求。如果我对 ruby 和 rails 的新手以及 stackoverflow 的新手有重复或不清楚的地方,我很抱歉。
我有一个现有的 Rails 应用程序,其中包含很多基础设施。我想获取其中的一些模型,将它们嵌套在命名空间中,然后将所有这些放入 ruby gem 中,以便在其他 Rails 应用程序中使用。据我了解,rails 的加载路径存在问题,因为它们是一种约定,而定义另一个引擎时存在问题,因为您有两个引擎并且它们崩溃了。
我一直在寻找指南或教程来学习如何做到这一点,但运气不佳,但我很肯定如果有人能指出我的话,那将会很棒。
我用引擎制作宝石的尝试因碰撞或缺少铁轨而失败。
我正在运行 rails 3.2.3 和 ruby 1.9.3。
【问题讨论】:
-
您所描述的问题通常可以通过将代码重构到新的 Rails 引擎来解决。你是如何尝试创建引擎的,你到底遇到了什么错误?
-
我将尝试更好地描述我正在尝试做的事情:我已经为基本的 Rails 教程(博客)制作了带有帖子、cmets 和标签的示例应用程序。现在说我想获取标签并将其制作成一个 gem,这样任何 Rails 应用程序都可以将标签添加到任何模型上。我尝试做的是制作一个包含所有标签(模型、部分、迁移)的 gem,然后我安装了该 gem,然后当我需要它时,我会被抛出,例如,如果我运行 irb(在另一条评论中发布输出,因为我是去掉字符
-
1.9.3p194 :001 > 需要 "tag_model_gem" NameError: 未初始化的常量 TagModelGem::Rails 1.9.3p194 :002 > 需要 "rails" => true 1.9.3p194 :003 > 需要 "tag_model_gem" TypeError : 已经初始化的类
-
你所描述的应该只是工作,我一直这样做。因此,您可能正在做一些不太正确的事情。我不完全理解您遇到的问题的性质,抱歉。但是您尝试做的事情是可能的,正常的,并且通常有效。
标签: ruby-on-rails plugins model gem rails-engines