在我的会话控制器中,我有一个名为destroy的方法,在路由中指向" Logout",它的功能只是将会话变量重置为nil并重定向到存储索引:
get "sessions/destroy"
controller :sessions do
get 'login' => :new
post 'login' => :create
delete 'logout' => :destroy
end
在路径文件中我声明了指针:
<td class="course_table"><input type="text" style="border:none;background:inherit;width:100%" name="elective_paper1" value="$SubjectCode[0]['elective_paper_name']" /></td>
现在在浏览器中我应该触发HTTP DELETE VERB,但它需要GET才能找到它。
例如:
localhost:3000 / logout,错误是没有路由匹配[GET]&#34; / logout&#34;
答案 0 :(得分:2)
在链接中你应该使用显式方法:: destroy,如下所示:
= link_to 'Destroy', session, method: :destroy
答案 1 :(得分:1)
如果您在config/initializers/devise.rb
中查看您的Devise初始值设定项,并通过第236行搜索并切换到:get
,如果您希望用户通过GET请求注销。
config.sign_out_via = :get
答案 2 :(得分:0)
我有同样的错误。
这对我有用。
只需更改路线即可。
delete 'logout', to: 'sessions#destroy'
#to
get 'logout', to: 'sessions#destroy'