问题标签 [rack-middleware]

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 投票
3 回答
11129 浏览

ruby-on-rails - 使用 Rspec 测试中间件

我已经编写了一些 Rack-Middleware,现在我正在尝试使用 Rspec 对其进行测试。但是所有的 Rack-Middleware 都是用一个 'app' 参数实例化的,它代表 Rails 应用程序本身。你们如何在 Rspec 中模拟这个?

例如,

0 投票
0 回答
2371 浏览

ruby-on-rails - Is there a way to get session cookie name in rack middleware?

I use middleware class in Rack, Ruby on Rails and Sinatra applications.

Rack application

config.ru:

Ruby on Rails application

config/initializers/secret_token.rb:

config/initializers/session_store.rb:

config/initializers/my_middleware.rb:

Middleware class

lib/my_middleware.rb:

How can I get the name of session cookie ('_dummy_session') in MyMiddleware#call method?

0 投票
1 回答
30 浏览

ruby-on-rails - Rails 引擎、可安装的应用程序等,一个失败的影响

我假设如果您在主导轨中安装应用程序或使用导轨引擎。如果任何子应用程序失败/崩溃,则意味着主应用程序和所有子应用程序失败/崩溃。

有人肯定知道吗?我想知道我是否应该构建一个系统,是否应该将我的架构分成多个独立的应用程序和实例,或者构建引擎/可安装应用程序而不是更大的应用程序。令人担忧的是,如果应用生态系统的一部分不去影响其他应用程序,将会发生什么。

谢谢

0 投票
1 回答
1005 浏览

ruby-on-rails - Exception_Notification 不知道 RecordNotFound 异常

我第一次尝试使用 exception_notification。我观看了 Railscast 并按照作者在http://smartinez87.github.io/exception_notification/中的说明进行操作。在某些例外情况下,一切似乎都可以正常工作,但在其他情况下则不然。

我测试并收到了来自我的开发环境的电子邮件错误通知,其中包含诸如"An ActionView::Template::Error occurred in static_pages#home:“”之类的错误。但是,ExceptionNotification 没有捕获到一些异常,例如RoutingExceptionRecordNotFound,我不知道为什么,因为我没有任何 rescue_from 策略我的 application_controller 中的任何类型。

我正在使用 rails 3.2.12 并检查了中间件堆栈数组,我可以看到 ExceptionNotification 只是最后一个,并且似乎某种异常不会沿着堆栈向下走,所以 Exception Notification 不知道他们。

所以,问题是:我做错了什么? ExceptionNotification 捕获ActionController::RoutingError或未捕获哪些和捕获并导致异常通知将通知电子邮件发送到我的收件箱之间有什么区别。ActiveRecord::RecordNotFoundActionView::Template::Error

提前致谢

0 投票
2 回答
1331 浏览

ruby-on-rails - ActiveSupport::Cache::Strategy::LocalCache 是做什么用的?

在所有环境中的生产中间件堆栈中,我看到了这个一次性实例:

我已经尝试删除所有我能想到的与缓存相关的东西,但我无法弄清楚它来自哪里。

它是什么?

0 投票
1 回答
151 浏览

ruby - 基于 CONTENT_TYPE 标头转换 params 变量的 Sinatra 中间件

我有一个 API 端点,它应该接收 JSON 或形成 urlencoded 数据。我可以通过接受标头检测到这一点,但我只是想知道是否有一个机架中间件已经为我做了这个。基本上,它根据接受标头转换参数。

0 投票
2 回答
2323 浏览

ruby-on-rails - 如何将机架中间件从 gem 添加到 rails 应用程序

我正在开发一个事件处理程序以向远程 api 报告异常(类似于 newrelic 代理),如果不在 environment.rb 文件中执行它,我找不到将中间件添加到机架的方法。

我不想在 environment.rb 文件中这样做,因为我打算把它变成一个 gem,我想最小化安装过程。

这是我想添加到我的应用程序中的简单中间件:

我能找到包含它的唯一方法是将其添加到我的环境配置中:

我使用 Rails 已经一年多了,但这是我第一次使用机架和中间件。

任何建议表示赞赏!

0 投票
4 回答
2615 浏览

ruby-on-rails - 重新加载rails中间件而不重新启动开发中的服务器

我有一个带有位于 lib/some/middleware.rb 的中间件的 rails 4 应用程序,该应用程序当前通过如下初始化程序注入堆栈:

不幸的是,每当我更改某些内容时,我都需要重新启动服务器。如何在开发模式下对每个请求重新加载它?我已经看到过类似的问题,即在 to_prepare 块中使用自动加载或包装代码来重新加载 lib 代码,但我不确定如何在这种情况下应用它。

谢谢,-FJM

更新#1

如果我尝试删除中间件,然后将其重新添加到 to_prepare 块中,则会收到错误“无法修改冻结数组”。

0 投票
2 回答
166 浏览

ruby-on-rails - 如何访问机架中间件中的 Rails 缓存

我有一些自定义中间件包含在我的堆栈顶部,我需要在其中做的是访问 rails 缓存。如何从中间件加载/访问 rails 缓存而不必先加载整个 rails 应用程序?

0 投票
2 回答
1215 浏览

ruby-on-rails - config.middleware.insert_before 的第三个参数是什么?

我一直在使用以下内容config/environments/staging.rb来保持我的staging环境私有:

config.middleware.insert_before的第三个参数 ( 'Staging')是什么?这个特定参数有什么含义?如果我想在production(通过将其复制/粘贴到config/environments/production.rb)中运行此代码,我应该将此参数更改为'Production'?如果我把它改成'Fubar'?

我尝试在文档源代码中查找此内容,但无法解释。另外,我发现它在一本书中提到,但解释充其量是薄弱的:

args 参数是一个可选的属性散列,用于传递给 Rack 过滤器的初始化方法。