ruby-on-rails – Helper Devise:在请求环境中找不到`Warden ::
我尝试将Devise用于我的Rails应用程序.我可以注册并登录但是当我转到我的其他页面“构建”时,我收到以下错误:
这是我的控制器: class ApplicationController < ActionController::Base protect_from_forgery with: :exception private # Overwriting the sign_out redirect path method def after_sign_out_path_for(resource_or_scope) build_path end end 这是我的两个部分观点: <!-- views/devise/menu/_login_items.html.erb --> <% if user_signed_in? %> <li> <%= link_to('Logout',destroy_user_session_path,:method => :delete) %> </li> <% else %> <li> <%= link_to('Login',new_user_session_path) %> </li> <% end %> 和 <!-- views/devise/menu/_registration_items.html.erb --> <% if user_signed_in? %> <li> <%= link_to('Edit registration',edit_user_registration_path) %> </li> <% else %> <li> <%= link_to('Register',new_user_registration_path) %> </li> <% end %> 调试之后,我发现问题来自我的“show”控制器中的这一行:template = HomeController.render(‘layouts / _template’) 谢谢你的帮助. 解决方法
基于此SO
answer,您需要在控制器规范中包含Devise :: Test :: ControllerHelpers模块.将以下内容添加到rails_helper:
RSpec.configure do |config| config.include Devise::Test::ControllerHelpers,type: :controller end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |