Mat*_*own 7 rspec ruby-on-rails devise
在使用Devise TestHelpers的文档中,它声明使用诸如......之类的行.
@request.env["devise.mapping"] = Devise.mappings[:admin]
Run Code Online (Sandbox Code Playgroud)
要么
@request.env["devise.mapping"] = Devise.mappings[:user]
Run Code Online (Sandbox Code Playgroud)
...让Devise知道要使用哪个资源或映射,因为控制器测试绕过routes.rb.我不清楚这些映射是什么.我没有在这方面设置任何特别的东西,我没有考虑具体的映射.我有用户,管理员,炼油厂和超级用户角色,la Rolify,我正在使用Cancan的能力.
你能澄清一下吗?......也许资源名称就是我们的意思?
TIA.-Matt
Mat*_*own 10
自从等待答案以来,我的研究似乎表明文档中指出的映射实际上是指Devise附加的资源.
以下是我的推测,但它似乎工作,它同意我的代码扫描. 例如,如果您只有一个名为User的资源,您已使用Devise进行身份验证,则只需在控制器规范设置中使用以下内容:
@request.env["devise.mapping"] = Devise.mappings[:user]
Run Code Online (Sandbox Code Playgroud)
但是,如果您要对多个模型进行身份验证,例如User和Admin,则需要分别使用以下模型.
@request.env["devise.mapping"] = Devise.mappings[:user]
Run Code Online (Sandbox Code Playgroud)
和
@request.env["devise.mapping"] = Devise.mappings[:admin]
Run Code Online (Sandbox Code Playgroud)
如果您有更好的意见,请随时更新此问题/答案.
| 归档时间: |
|
| 查看次数: |
1118 次 |
| 最近记录: |