如何在api模式下使用rails 5时创建自定义中间件?

时间:2017-07-05 22:56:24

标签: api ruby-on-rails-5 middleware rails-admin

我试图在api-mode中的rails 5中创建一个自定义中间件,其中只有那些不以/ api / ...开头的路由它将重新加入

middleware.use ActionDispatch::Cookies
middleware.use ActionDispatch::Cookies::Session

这篇文章展示了如何在rails 4中做到这一点: OmniAuth::NoSessionError - You must provide a session to use OmniAuth. (configured in devise)

我试图创建一个类似于上面帖子中接受的答案的中间件但是在添加

config.middleware.insert_before ActionDispatch::ParamsParser, "SelectiveStack"

到application.rb会抛出错误,说它找不到SelectiveStack。

它还不允许我在application.rb中添加一个要求或包含来访问它,所以我想知道是否有人遇到过此或有任何想法?

我可能只是格式错误或者路径错误。

1 个答案:

答案 0 :(得分:1)

事实证明,来自其他stackoverflow post中间件的ActionDispatch :: ParamsParser实际上并不存在,并且错误的措辞有点令人困惑。

因此,基本上要使其工作,您可以将中间件放在实际的现有中间件之前,或者只使用

config.middleware.use 

而不是

config.middleware.insert_before