工具
- 权威人士授权;尝试与官方 Pundit README 链接的这个拉取请求;
- ActiveInteraction域服务对象(“DSO”);
- RSpec 2.99.1
** 该项目**
项目 repo 在 Github;这里要审查的是在pundit-1
树枝上。
我遵循 Pundit 教程并使用“传统”胖乎乎的控制器获得授权;看
到目前为止一切都很好。然后我们来到SessionController
,其#new
和#destroy
动作分别控制登录和注销..
当前代码和规范使用传统的控制器逻辑工作得很好(请参阅如何#new
调用使用 Pundit 的私有方法SessionDataPolicy
来使用.
然后我尝试将该逻辑封装在ActiveInteraction DSO中(请参阅 中注释掉的代码SessionsController#new
),然后一切都变得松散了。
更具体地说,这个 GistSessionsController
中的规范版本在规范调用方法的地方提出了 a 。Pundit::AuthorizationNotPerformedError
#new
威士忌酒。探戈。狐狸?!?!?
有没有人能够在没有Pundit 直接居住在控制器代码中的情况下获得类似的代码,最好使用@billychan 的拉取请求(更好的替代品将不胜感激)?
这让我完全摸不着头脑。