问题标签 [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.
ruby-on-rails - Ruby/Rails 与 Rails 引擎(Redmine 插件) - 添加到基本视图而不覆盖它?
我有一个插件需要添加一些基本的 Redmine 布局。更改包括几个 div 和对 JavaScript 函数的调用。目前我通过简单地覆盖基本布局视图来实现这一点。
我不喜欢这样做,因为如果我们升级 Redmine,任何被覆盖的页面都不会随更新版本更新。有没有更优雅的方式来添加这个功能?
ruby-on-rails-3 - Rails 3 引擎和静态资源
我正在构建一个捆绑为 gem (gmaps4rails) 的引擎。我将 /public 的引擎复制到了我的 rails 应用程序的 /public 中。
在开发中一切正常,但在生产中无法正常工作:似乎找不到静态资产(我的引擎和我的主应用程序的)。
日志告诉以下内容(只是摘要):
我做了几件事:
在我的应用程序 production.rb 中,我设置:
config.serve_static_assets = true
这解决了问题但不够优雅,我想将其保持为 false 并在引擎中添加配置:)
我按照这里的建议没有成功。
ruby-on-rails - How can I make routes from a Rails 3 engine available to the host application?
I have a Rails 3 application with several engines containing additional functionality. Each engine is a separate service that customers can purchase access to.
I am, however, having a problem with routes from the engines that aren't readily available to the controllers and views.
controller:
app/views/classrooms/new.html.haml
:
config/routes.rb
in engine:
config/routes.rb
in app:
lib/my_engine_name.rb
in engine:
attempting to go to /classrooms/new
results in
and attempting to call classrooms_path
from any other view results in the same error.
I can, however, call MyEngineName::Engine.routes.url_helpers.classrooms_path
and get it working. I'm thinking I might have defined the routes wrong, but can't find another way that works.
Tried running the app with both Passenger (standalone and Apache module) and WEBrick (rails server). Using latest Rails from Git (7c920631ec3b314cfaa3a60d265de40cba3e8135
).
ruby-on-rails - 如何使用 Cucumber 和 Rspec 测试 Rails 3 引擎?
如果这个问题有点主观,我深表歉意......我正在尝试找出使用 Cucumber 和 Rspec 测试 Rails 3 引擎的最佳方法。为了测试引擎,需要一个 rails 3 应用程序。这是我目前正在做的事情:
通过运行以下命令将 Rails 测试应用程序添加到 gem (myengine) 的根目录:
rails new /myengine/rails_app
/myengine/rails_app/features
像在普通 Rails 应用程序中一样添加 Cucumber需要 Rails 引擎 Gem(使用
:path=>"/myengine"
)/myengine/rails_app/Gemfile
将 spec 添加到 gem 的根目录:
/myengine/spec
包括固定装置,
/myengine/spec/fixtures
我将以下内容添加到我的 cuc env.rb 中:
环境.rb:
你觉得这样设置有什么问题吗?测试运行良好,但我有点犹豫是否将这些功能放入测试轨道应用程序中。我最初尝试将功能放在 gem 的根目录中,并在其中创建了测试 rails 应用程序features/support
,但由于某种原因,当我运行测试时我的引擎不会初始化,即使我可以看到应用程序在 cuc 运行时加载其他所有内容。
如果有人正在使用 Rails 引擎并使用 cuc 和 rspec 进行测试,我很想听听您的设置。
* *更新
自从我写了这个问题以来,我稍微改变了我的设置。我决定摆脱引擎根目录下的规范目录。现在,我只需创建一个名为“test_app”的 rails 应用程序,并在该应用程序中设置 cuc 和 rspec,就像我通常在 rails 应用程序中所做的那样。然后我像在上面的步骤 3 中那样包含 gem。由于引擎是一个子应用程序,我想最好像普通的 Rails 应用程序一样对其进行测试。我仍然有兴趣了解是否有人有不同的设置。
ruby-on-rails - 带有独立数据库的 Rails 引擎
我通过谷歌搜索这个主题找不到任何东西。我的任务是使用 Rails 引擎 (v2.3.10) 将两个 Rails 应用程序合并为一个。我正在尝试将一个应用程序的数据库迁移到另一个。我最初的想法是使用此处发布的类似方法编写一个包含多个数据库使用的迁移。
基本上,加载 db 配置并定义两个 AR 类,每个 db 一个,然后用我的表类对这些 AR 类进行子类化。然后我可以遍历原始应用程序数据库中的所有内容并添加到新数据库(进行修改以匹配新模式)
然后我想我会更容易,如果引擎有某种内置的支持,或者如果有一个插件可以缓解这个多数据库连接。我很乐意手动完成这项工作,但我想看看是否有人知道这类事情的好解决方案。
只是寻找一个一次性的解决方案,因为最终我们将通过正在迁移到的数据库访问所有内容
ruby-on-rails - Rails 引擎中的迁移?
我有多个 Rails 应用程序与同一个后端通信,我希望它们共享一些迁移。
我设置了一个 Rails 引擎(使用 enginex),我可以共享任何东西(控制器、视图、模型……)但不能迁移。我不能让它工作!
我试图创建一个文件 db/migrate/my_migration.rb 但如果我这样做,则在我的主应用程序中:
它不会加载它们。
经过一番谷歌搜索后,似乎最近有一些关于此的工作,并且似乎已合并到 rails master。我使用的是 rails 3.0.3,你有什么办法可以完成这项工作吗?
谢谢 !
ruby-on-rails - 我应该如何在 Rails 应用程序中使用 rdbms 和 mongodb?
我目前正在使用 mongoid 试水,并且到目前为止已经开始在电子商务商店中使用。现在当然 mongoid 没有交易,所以我希望在大多数应用程序中使用 mongoid,包括身份验证、授权、产品信息等。
但是,缺少事务需要返回到 rdbms。rdbms 将纯粹用于记录金融交易。
这在rails中是否可行,有人做过吗?
一般来说,我对 rails 的经验有限,但我想将安全部分安装为引擎,并将 url 范围限定在 secure.myapp.com 或 myapp.com/secure/ 下,并且用户将被重定向到 ssl,而 rack 负责处理事情像共享会话。
这行得通吗?或者有没有人找到更好的方法来实现这一点?
ruby-on-rails-3 - 如何使用 Devise 和 rspec 测试 Rails3 引擎
我正在开发一个依赖于 Devise Gem 的 Rails 引擎。我的引擎本身也是一个宝石,我需要为那个东西编写测试。为此,我阅读了大量有关如何从 gem 内部测试引擎的资料,并进行了以下设置:
在包含 Devise gem 之前,我可以编写测试并运行它们
现在我有了 Devise gem 和一个像这样的用户模型
我的测试失败指向用户类和设计调用。
所以现在我尝试调查错误并找出如何使用 devise 和我的引擎一起启动虚拟应用程序。规范助手看起来像这样
环境.rb
应用程序.rb
boot.rb
宝石文件
我也试图像这样要求我的引擎
Gemfile 和 gems 都已加载(Bundler.setup 运行并且设计常量可用)。
现在我创建了一个使用 my_engine gem 的外部应用程序。当我从我的引擎复制测试并运行它们时,它们都通过了。
有什么我想念的吗?也许有更好的方法来为引擎编写测试?
ruby-on-rails - 为 Rails 3 应用程序制作自定义插件/宝石/引擎
我正在关注指南http://edgeguides.rubyonrails.org/plugins.html,它似乎有点过时了。你能看一下它并告诉我在 Rails 3 中哪些部分应该以不同的方式完成吗?
EDIT1:也非常欢迎提供其他教程的链接!
ruby-on-rails - 如何调试 rails 3 gem?
我根据本教程创建了一个 gem/engine:
http://www.themodestrubyist.com/2010/03/05/rails-3-plugins---part-2---writing-an-engine/
但是,尝试在新创建的应用程序中使用 gem 时出现错误。我在尝试访问应用程序时收到“路由错误 - nil:NilClass 的未定义方法 `sub'”。
我在日志文件中唯一能看到的是同样的错误。没有堆栈跟踪/调试跟踪,因此很难弄清楚错误来自哪里。理想情况下,我希望“从 gem”中查看堆栈跟踪,但似乎 rails 不会调试源自应用程序外部的错误?
我正在使用 rvm、ruby 1.9.2、rails 3.0.1。
这是我在 gem 中的 config/routes.rb 文件,尽管我不认为这是调试消息所暗示的路由错误。
有什么建议么?