问题标签 [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 投票
4 回答
2305 浏览

ruby-on-rails - 如何在中间件 rails 5 中访问 params 变量

我在使用 rails 5 中的中间件时遇到问题,我试图POST通过在中间件中使用来操纵在 http中发送Rack::Request的参数,但是在调用函数之前,发送的参数不会被弹出@app.call(env)

使用 byebug 访问变量envrequest结果如下:

正如您在 中看到的CONTENT_LENGTH,该值144消失了,但是当您执行命令request.params时它是空的。

然后,如果我在执行该行时继续使用 byebug,@app.call(env)则处理参数。

这是中间件代码:

0 投票
0 回答
532 浏览

ruby-on-rails - 如何使用导轨上的机架中间件从 json 对象构建帖子参数

我收到一个用 jwt 编码的 json 对象,在中间件中我想在解码消息后构建 post 参数

在控制台上

{"名称"=>"xyz", "描述"=>"xyz"}

ActionDispatch::Http::Parameters::ParseError (822: '{"name"=>"xyz", "description"=>"xyz"}' 处的意外标记):

我如何构建用于传递到 Rails 的帖子参数

0 投票
0 回答
836 浏览

ruby-on-rails - 如何在 Rails 中动态更改会话 cookie 名称?

我有一个 Ruby on Rails 4.2 多租户应用程序,我希望每个租户使用它自己的会话 cookie 和 cookie 选项。我尝试了不同的方法,但我无法正确处理每个细节。

要添加更多上下文,从请求中的主机 url 中选择租户,在中间件中,并将其设置为我可以访问堆栈的线程变量。让我们将该设置对象称为Settings.current_account.

选项 1:中间件

然后在初始化程序中

结果:这将允许我设置expire_after保留的 cookie 名称,但不能设置 cookie 名称bla

选项 2:自定义 cookie 存储

然后在初始化程序中:

但是看起来AccountCookieStore实例是在调用到达中间件之前加载的Settings.current_account,因此无法从请求中获取任何值并用于创建 cookie。

选项 3:ApplicationController 中的 after_filter

这只是行不通。

我错过了什么?关于如何完成这项工作的任何想法?

0 投票
0 回答
28 浏览

ruby-on-rails - Rails ExceptionNotifier -> 基于标题的通知器

是否可以根据某些变量或异常标题更改 ExceptionNotifier exception_recipients?

我想将一些主要通知发送到一封电子邮件,并将其他通过 ExceptionNotifier.notify_exception 创建的电子邮件发送到另一封电子邮件。

0 投票
1 回答
155 浏览

ruby - 如何在机架应用程序的集成测试中启用中间件?

在为 Rack 应用程序编写集成测试时,我想使用在运行时环境中通过经典config.ru文件启用的所有中间件来测试应用程序。

使用rack-app,我可以实例化 Rack 应用程序:

使用裸照rack,它看起来是一样的:

但是没有启用的中间件,因为应用程序没有通过命令启用它们的config.ru位置进行实例化。use

如何在测试中启用中间件,以便请求在示例中通过它们运行?