没有路线匹配[GET]" / logout"

时间:2015-07-24 21:49:20

标签: ruby-on-rails ruby session httprequest store

在我的会话控制器中,我有一个名为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;

3 个答案:

答案 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'