问题标签 [rails-engines]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1385 浏览

ruby-on-rails - 一种将 before_filter 从引擎添加到应用程序的方法

没有很多具体的代码,这只是模糊的,但我会提供我能提供的。

给定一个 rails 引擎,一个基本引擎而不是在其自己的空间中的可安装引擎,我如何使引擎中的方法作为应用程序控制器的 before_filter 对应用程序可用?

我一直在查看 Devise 代码,因为我想要的与 Devise 的经验相似,但我承认我不明白我正在经历的很多事情。

如果我将include Myengine::Mymodule应用程序控制器放入我希望有可用于过滤的方法的位置,我可以做到这一点,但我希望可以只使用这些方法而不必包含模块。

这是尝试将 Rails 应用程序转变为可供多个 Rails 应用程序使用的引擎的最新障碍,任何有关正确命名空间、模块配置等的处理的指导,都值得赞赏。

0 投票
1 回答
420 浏览

ruby-on-rails - 升级到 Rails 3.1 后,依赖项显然没有正确加载

我正在将使用 Devise 进行身份验证的 Rails 3 项目升级到 Rails 3.1 可安装引擎。升级后,Devise 似乎没有正确初始化,引发NameError

This issue from 2010,暗示在常规应用程序环境之外使用 Devise 时存在不兼容性:

可能当您不单独运行它时,不需要设计。

这个最近的问题确实涉及到细节,但它与我的实际问题无关(也许还没有)。

我不太明白它来自哪里。我的很多依赖项,比如 CanCan 和 Compass,在升级后开始在启动时给我错误。他们都是method missinguninitialized constant等等。我借此机会消除它们或用更现代的替代品代替它们。也许我不应该。

有人知道怎么修这个东西吗?

0 投票
1 回答
257 浏览

ruby-on-rails - 重载可安装引擎的资产/视图?

我正在开发一个 Rails-3.1 可安装引擎,它将安装在 rails 应用程序中,引擎当然提供它自己的资产和视图,但我想重载一些文件。

例子:

让我们考虑一个可安装的博客引擎,它将安装在任何应用程序中以获取博客系统,但引擎应该看起来与网站完全一样,所以我想重载一些资产文件以及一些视图(如 _header 和 _footer在布局中呈现的部分)

可安装的发动机有可能吗?

0 投票
6 回答
8321 浏览

ruby-on-rails - 列出可安装 Rails 3.1 引擎的“rake routes”

我正在开发用于 Rails 3.1 的可安装引擎,我想列出引擎的路线。

我使用以下方法创建了引擎:

并编辑了“test/dummy/config/routes”文件以读取:

...和“配置/路线”阅读:

我想列出为 ':posts' 生成的路由,但不清楚我该如何做到这一点。当我运行“rake app:routes”时,我只得到“/blog”路由:

当我运行“rake routes”时,出现错误:

我怎样才能看到':posts'的路线?我可以在不重写相关 rake 任务的情况下做到这一点吗?

0 投票
2 回答
12678 浏览

ruby-on-rails - 使用 Rspec 测试 Rails 3.1 可安装引擎

我开始制作 Rails 3.1 引擎,并且很难使用 rspec 对其进行测试。

首先,如果我运行rails g integration_test whatever它,它会在测试/集成而不是规范/请求中创建一个常规集成测试(安装了 rspec-rails gem,并且需要作为 gemspec 文件中的开发依赖项)

此外,当我运行规范测试时,我收到一条错误消息,指出与我正在测试的模型对应的表尚未创建。我尝试从虚拟应用程序内部rake engine_name:install:migrations运行rake db:migrate,但出现“表已存在”错误。

一切似乎都断开了,我觉得我在这里缺少一些东西来使 rspec gem 无缝工作,就像它通常与完整的 rails 应用程序一样。

我遵循了这里http://rubyx.com/2011/03/01/start-your-engines的所有更改,我可以通过控制台启动虚拟应用程序来手动测试引擎,如下所示http://railscasts。 com/episodes/277-mountable-engines

有没有办法让 rspec 成为测试 rails 3.1 引擎的默认值?

0 投票
2 回答
1243 浏览

ruby-on-rails - Rails 3.1 引擎:如何让引擎 application_controller 与客户端应用程序的 application_controller 对话?

我有一个新的、可安装的 rails 3.1 引擎,我需要客户端应用程序,即包含此引擎的 rails 应用程序,来定义一个基于权限的通用方法。

所以,我想要在我的引擎的博客控制器中说:

before_filter :redirect_unless_admin

然后我想把它留给客户端应用程序来定义谁是管理员。但是,每当我尝试这个时,我都会得到:

我的客户端应用程序控制器如下所示:

在我的引擎应用程序控制器中,我有以下内容:

有人可以告诉我如何设置它,以便我的引擎的博客控制器可以与我的客户的 application_controller 对话吗?

0 投票
1 回答
172 浏览

ruby-on-rails - 可安装导轨的引擎中的 DataMapper 模型?

我正在建造一个可安装的引擎。

从基本安装开始,我已将现有应用程序移动到引擎命名空间中。

引擎启动,但我收到错误消息,因为数据库中没有可供控制器参考的表。

  • 如何从引擎中获取数据库中的模型?
  • 如何使用提供的虚拟应用程序对此进行测试?

我调查了 dm-migrations,但我还没有将它与 DataMapper 一起使用,所以我有点不知所措,未知的水域。巨大的问号等等。我会四处寻找,但现在没有任何有用的搜索。

这是我正在玩的应用程序:http: //github.com/blueblank/Ticket-Engine

0 投票
4 回答
2601 浏览

ruby-on-rails - 使用 RSpec 2 测试 Rails 3.1 引擎路由

我正在尝试使用 RSpec 2 测试 Rails 3.1 引擎。经过大量试验和错误(以及文档和堆栈溢出搜索)后,该应用程序正在运行,并且我已经通过了大部分规范。问题是我的路线规格仍然失败。

对于具有隔离命名空间和控制器 Foo::BarsController 的引擎“foo”,我有这个:

这导致:

我的规范虚拟应用程序似乎设置正确:

如果有助于回答这个问题,我的视图规范也不起作用。这是一个典型的错误:

有任何想法吗?

0 投票
1 回答
505 浏览

ruby-on-rails-3 - Rails 3.1 引擎模块

使用创建可安装 Rails 3.1 引擎时

它在MyEngine::Engine < Rails::Engine

有没有办法像 jQuery::Rails 引擎(Jquery::Rails::Engine)一样生成它,还是我必须手动生成它?

我试过这些,当然没有用。

0 投票
1 回答
1556 浏览

ruby - rails 3.1 动态控制器实例化

我有一个 Rails Engine gem,我想从初始化程序动态加载 HomeController 类定义。我可以正确地实例化类,但是当我去调用索引操作时,我得到了这个错误:

我在动作包部分之后切断了跟踪,因为它真的很长,但我认为这是所有相关信息。

这是我的引擎类定义:

这是我将根路径设置为 home#index 的时候。如果我在应用程序或 gem 的 app/controllers 中创建 home_controller.rb,如下所示:

然后一切正常,并且索引操作被适当地呈现,所以我确信我的路由、视图或应用程序控制器没有问题。

对此问题的任何启示将不胜感激。 编辑 的输出

HomeController.view_paths.join " : "

/home/chris/gems/my_gem/app/views : /home/chris/test_app/app/views