问题标签 [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 回答
1015 浏览

ruby-on-rails - 路线的Rails 3引擎问题

我有一个引擎,带有这个路由文件:

当我运行rake routes任务时,我得到了正确的输出

我的控制器非常简单:

但是,当我尝试使用进入引擎控制器的任何操作时,我收到以下错误:

我真的不知道 Rails 是在哪里神奇地Comment在控制器上添加了这个命名空间,我也不知道如何解决这个问题。

0 投票
2 回答
2454 浏览

ruby-on-rails-3 - 在heroku上工作的rails 3博客引擎/宝石,用什么?

我花了一些时间寻找在现有网站上使用的 rail3 博客引擎。我希望博客与 SEO 点的应用程序位于同一域,例如 www.site.com/blog 而不是 blog.site.com

在这上面花了一些时间我发现:

  • 托托
  • 杰基尔。它生成静态页面,我真的很喜欢这个想法,因为它的高度缓存是最佳的负载不足。不确定我们的非技术博客作者将如何应对。

我还查看了更多动态平台,例如:

  • 错字(哪些接缝过时了,我猜他们发现很难移植到 Rails 3)
  • 墨菲斯托

人们是否放弃了这一点,因为这篇文章需要将 WP 博客与 Heroku 上的 Rails 应用程序链接起来建议?鉴于此的价值,接缝疯狂。此外,这篇文章很好,但对我来说并不是真正的结论https://stackoverflow.com/questions/1807670/blog-engine-for-rails-application

0 投票
1 回答
602 浏览

ruby-on-rails - 覆盖引擎中的控制器(特别是在设计中)

我想在登录/注销时删除 Devise 的 set_flash_message,所以我创建了自己的 session_controller,从 devise 中逐字复制。我将视图复制到 app/views/sessions,并更改了路线。现在,当我登录时,它会将我重定向回登录页面。rails 日志显示

当我使用内置会话控制器时,它不会出现。有任何想法吗?

我可以在不覆盖控制器的情况下解决这个问题,但我怀疑无论如何我都会想在某个时候这样做并遇到同样的问题。何塞不知道。我该如何解决这个问题?

杰伊·莱维特

app/controllers/sessions_controller.rb:与 /Users/jay/.rvm/gems/ruby-1.9.2-p180/gems/devise-1.2.1/app/controllers/devise/sessions_controller.rb 相同。

配置/路由.rb:

使用我的控制器副本进行 rails 输出:

使用内置控制器的 rails 输出:

0 投票
4 回答
2060 浏览

ruby-on-rails - Rails 3 引擎和代码在开发模式下重新加载

我有一个rails 3引擎。在初始化程序中,它需要来自某个文件夹的一堆文件。在这个文件中,我的引擎的用户定义了代码、业务逻辑、配置引擎等。所有这些数据都静态存储在我的引擎主模块中(在应用程序属性中)

我希望在开发模式下的每个请求上重新加载这些文件。(这样用户就不必重新加载服务器来查看他刚刚所做的更改)当然我可以做这样的事情而不是初始化程序

但是这样我会遇到问题(因为这个文件中定义的常量不会真正重新加载)。

理想的解决方案是让我的整个引擎在每次请求时都可以重新加载,但还没有找到方法。

0 投票
1 回答
886 浏览

ruby-on-rails - 如何修改 Rails 引擎以需要我的库?

我有一个 Rails 引擎(别人的 gem),我试图通过添加另一个 gem 作为依赖项来修改它。我似乎无法弄清楚如何让引擎需要库。我尝试了各种不同的东西,但我似乎无法让它发挥作用。

我的主应用程序 Gemfile 我有引擎:

在引擎的 gemspec 中,我有:

在引擎中,我尝试通过添加此acts_as_something方法来修改一个模型:

我正在尝试修改一个控制器:

将此库作为依赖项添加到引擎并使其需要该库的适当方法是什么?

0 投票
2 回答
400 浏览

ruby-on-rails-3 - Rails 引擎“需要”前缀

如果我有一个 gem 'foo'(它是基于引擎的),我怎么能说它包含的所有文件在'require'它们时都需要'foo/'前缀?

例如,如果在我的“foo”gem 中有一个“bar.rb”文件,我希望能够强制包含这个文件,如下所示:

而不是通常的

我希望这种行为适用于包含上下文的任何内容(来自 APP、来自另一个 gem 等)...

我知道这是可行的,因为大多数 rails 文件都包含在“rails”前缀中:

0 投票
0 回答
128 浏览

ruby-on-rails-3 - 2 rails engines in 1 project, view problems

Currently i'm developing 2 Rails::Engines 1 blog (for fun) and 1 csv importer and mapper. I made them with enginex and jeweler into a gem. I installed them locally and i included either 1 of them in an empty rails 3.x project and it's working fine!

The thing i want to do know is include both gems in 1 rails 3.x project. This all works doesn't raise any errors but here is the problem.

When i go to my "/blog" routes everything is rendered perfectly. But when i go to my "/csv" route i dont see any layouts. When i look at the development.log i see this:

This all looks fine, but i dont see any of my html. But when i put a <%= raise "hell %> inside my index.html.erb it gets raised. So i'm baffled here, both my engines work. All my rails logic works but i dont see my html inside the index.html.erb.

The strangest thing is when i include "csv_engine" gem without the blog gem in a empty rails 3 app everything works fine and i get the html views.

I even tried overwriting the views from within my empty host app e.g. app/views/csv_engine/imports/index.html.erb with some other html in it but this also doesnt work. Does anyone has any idea what this could be?

0 投票
2 回答
1414 浏览

ruby-on-rails - 当 cache_classes = false 时,为什么包含在 Rails 引擎初始化程序中会发生故障?

我有一个引擎,它在其初始化程序中扩展另一个引擎的类,如下所示:

ProductExtender模块在包含时调用 AnotherApp::Product 上的一些方法,例如

这适用于测试和生产环境,但是当我尝试调用 ProductExtender 定义的东西时config.cache_classes = false,它会向我抛出一个问题,例如 @product.variations。NoMethodError

不用说,看到我所有的测试都通过了,然后又因为开发中的错误而受到猛烈抨击,这令人不寒而栗。当我设置时它不会发生cache_classes = true,但这让我想知道我是否在做我不应该做的事情。

我的问题是双重的:为什么会发生这种情况,是否有更好的方法来实现在另一个应用程序对象上扩展/调用方法的功能?

谢谢大家!

0 投票
1 回答
1600 浏览

ruby-on-rails - Redmine Plugin/Rails Engine - 每个页面上的插件中的图像/javascripts 的路径?

好的,所以我有一个 Redmine 插件(Rails 引擎)。该插件使用钩子,以便在 Redmine 的每个页面上呈现 HTML/控件。

我正在从这个插件接收信息并将其发送到控制器。现在我有两个可以在 javascript 和 css 中使用的选项:相对路径或绝对路径。

相对路径不适用于每个页面,因为 URL 路径可能从一到三个部分到路径的任何位置(因为控件必须在每个页面上工作)。此选项要求我的插件每次都在 URL 中的相同嵌套级别呈现,但不是这样。

绝对路径适用于特定安装,但是当其他人在路径不在域根目录下的安装下使用它时,我的插件会中断,即 www.mysite.com/redmine/ 而不是 www.mysite.com。这需要手动编辑,这根本不优雅。

有什么方法可以轻松解决这个看似简单的问题?

0 投票
7 回答
6195 浏览

ruby-on-rails - 覆盖 Rails 3 引擎提供的命名路由

我正在开发一个使用 Rails 引擎的 Ruby on Rails 3(.0) 应用程序。但是,在我的本地应用程序中,我想覆盖 Rails 引擎提供的路由之一。

从引擎配置/routes.rb:

从我的应用程序配置/routes.rb:

但是,当我检查路线时,两者似乎都处于活动状态(并且它们的路线似乎“获胜”,至少在引擎控制器内)

有没有一种好方法可以强制我的本地应用程序的命名路由优先?