加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 设计退出错误

发布时间:2020-12-16 19:30:02 所属栏目:百科 来源:网络整理
导读:按照相关的设计教程,我已经陷入了最后的障碍. Devise生成以下代码以签署用户: %= link_to "Sign out",destroy_user_session_path % 并且在执行rake路线时出现路线 destroy_user_session DELETE /users/sign_out(.:format){:action="destroy",:controller="d
按照相关的设计教程,我已经陷入了最后的障碍.

Devise生成以下代码以签署用户:

<%= link_to "Sign out",destroy_user_session_path %>

并且在执行rake路线时出现路线

destroy_user_session DELETE     /users/sign_out(.:format)
{:action=>"destroy",:controller=>"devise/sessions"}

但是我收到一个错误说:

无法为UsersController找到操作’show’

有任何想法吗?

解决方法

路径是正确的,但如果你仔细观察,你会发现它不是GET请求而是DELETE请求所以传递方法:
<%= link_to "Sign out",destroy_user_session_path,:method => :delete %>

编辑:

这应该为您的链接添加data-method =“delete”属性.验证(查看生成的HTML).如果该属性存在且单击该链接时没有任何反应,请确保您已在布局中包含默认的javascript文件.应该有一条线:

<%= javascript_include_tag:默认值%>

在你的布局中.

>>重要<&lt ;:您无法在地址栏中键入退出网址并按Enter键,因为它是GET而不是DELETE请求,所以无法正常工作.这背后的魔力是javascript帮助器将挂钩到链接的“onclick”事件,然后将隐藏的表单(通过POST)提交到url的href目标,其中包含一个名为_method的隐藏字段,其值为“delete” . 为什么这一切?这是一个安全问题,否则有人可能会将您重定向到注销页面,只需将您注销,所有未保存的会话内容都将消失… 如果您需要通过GET注销,请将其添加到您的 配置/初始化/ devise.rb: config.sign_out_via =:get

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读