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

问题描述 投票:4回答:4

以前我在lib / middleware / my_middle_ware.rb下有我的中间件

但是这样做的时候,

config.middleware.use MyMiddleWare

我收到了

NameError: uninitialized constant

rails在哪里寻找中间件?

ruby-on-rails ruby ruby-on-rails-5 ruby-on-rails-5.1
4个回答
6
投票

看起来像铁路没有找到它。

我不得不做以下工作。

Dir["./lib/middleware/*.rb"].each do |file|
  require file
end

1
投票

我相信你想将你的中间件添加到你的config/application.rb或你的config/environments文件中。

config.middleware.use MyMiddleWare

这应该工作并将MyMiddleWare附加到中间件堆栈的底部。


0
投票

即使在调用'config.middleware.use'之前加载app / middleware内容之前,我认为你得到'未初始化的常量错误'。以下应该修复

config.middleware.use "MyMiddleWare"

如果上述方法不起作用,则以下其中一项可能为“否”。

Is MyMiddleWare in app/middleware/my_middle_ware.rb ?

Is MyMiddleWare in lib/my_middle_ware.rb ?

0
投票

config/application.rb中的中间件替换为config/environment/{environment}的字符串作为常量修复了我的问题

© www.soinside.com 2019 - 2024. All rights reserved.