> For the complete documentation index, see [llms.txt](https://kelby.gitbook.io/rails-beginner-s-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kelby.gitbook.io/rails-beginner-s-guide/rails/other_sections_of_rails/config.md).

# Configuration Middleware Stack Proxy

我们常用的 `config.middleware`，其实是 Middleware Stack Proxy 的实例对象。对应 Rails::Configuration::MiddlewareStackProxy

被 Railtie 所调用，又由于继承关系，Engine、Application、YourApp 都可用。

**实例方法：**

`use`

```
config.middleware.use Magical::Unicorns
```

`insert_before & insert`

```
config.middleware.insert_before ActionDispatch::Head, Magical::Unicorns
```

`insert_after`

```
config.middleware.insert_after ActionDispatch::Head, Magical::Unicorns
```

`swap`

```
config.middleware.swap ActionDispatch::Flash, Magical::Unicorns
```

`delete`

```
config.middleware.delete ActionDispatch::Flash
```

除以上方法外，还有：

`unshift`

运用上述方法，我们可以增加、删除 Middleware，或改变 Middleware 加载顺序。
