首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我应该把Rails 5.1的中间件文件放在哪里?

我应该把Rails 5.1的中间件文件放在哪里?
EN

Stack Overflow用户
提问于 2017-06-22 07:56:32
回答 5查看 3.7K关注 0票数 12

以前,我的中间件放在lib/ middleware / my _middle_ware.rb下

但是在这样做的时候,

代码语言:javascript
代码运行次数:0
运行
复制
config.middleware.use MyMiddleWare

我收到一个

代码语言:javascript
代码运行次数:0
运行
复制
NameError: uninitialized constant

rails在哪里寻找中间件?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-06-22 22:25:57

看起来rails并没有在寻找它。

为了让它正常工作,我必须执行以下操作。

代码语言:javascript
代码运行次数:0
运行
复制
Dir["./lib/middleware/*.rb"].each do |file|
  require file
end
票数 10
EN

Stack Overflow用户

发布于 2017-06-22 09:39:04

我相信您希望将中间件添加到config/application.rbconfig/environments文件中。

代码语言:javascript
代码运行次数:0
运行
复制
config.middleware.use MyMiddleWare

这应该是可行的,并将MyMiddleWare附加到中间件堆栈的底部。

票数 2
EN

Stack Overflow用户

发布于 2019-09-25 20:14:11

创建一个文件夹app/middlewares,并在该文件夹中创建您的中间件文件。

但不幸的是,即使我在Rails v5.2.2中添加了加载路径,也无法加载app/middleware文件夹。

代码语言:javascript
代码运行次数:0
运行
复制
config.autoload_paths << "#{Rails.root}/app/middlewares"
config.eager_load_paths << "#{Rails.root}/app/middlewares"

因此您可以显式地使用require,如下所示,在application.rb中添加下面这一行

代码语言:javascript
代码运行次数:0
运行
复制
require_relative '../app/middlewares/my_middleware'

和加载中间件:

代码语言:javascript
代码运行次数:0
运行
复制
config.middleware.use MyMiddleware

并调用rake middleware查看中间件堆栈。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44687983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档