为对象设计删除链接导致用户注销

发布于 2024-12-02 01:18:17 字数 1030 浏览 0 评论 0原文

我在使用 Devise 时遇到了一个奇怪的问题。我有包含任务的清单。当您突然删除任务时,我会收到与用户有关的模板错误。

似乎删除方法会导致会话注销,因此在尝试加载模板时找不到用户。

我不知道为什么会发生这种情况:

_task.html

<div class="tasks">
<%= div_for task do %>

<%= link_to 'Delete', task_path(task), :method => :delete, :class => "delete", :remote  => true %> | <%= content_tag(:div, task.task, :class => "task-body") %> 


<% end %>
</div>

destroy.js.erb

$("#task_<%= @task.id %>").fadeOut();

重新加载页面后出现错误,这是用于帐户、注销等的标题

No route matches {:action=>"show", :controller=>"users"}

Extracted source (around line #5):

2: <div id ="login">
3: <ul>
4:  <li><%= link_to "Sign out", destroy_user_session_path %></li>
5:    <li><%= link_to "Account", user_path(current_user) %></li>
6:  <li><%= link_to "Things", user_things_path(current_user) %></li>
7:  
8: </ul>

提前致谢!

I am having a weird issue with Devise. I have lists with tasks on them. When you delete a task all of the sudden I get a template error having to do with the User.

It seems like the delete method causes the session to logout and therefore can't find the User when trying to load the template.

I have no idea why this is happening:

_task.html

<div class="tasks">
<%= div_for task do %>

<%= link_to 'Delete', task_path(task), :method => :delete, :class => "delete", :remote  => true %> | <%= content_tag(:div, task.task, :class => "task-body") %> 


<% end %>
</div>

destroy.js.erb

$("#task_<%= @task.id %>").fadeOut();

ERROR AFTER RELOADING PAGE, THIS IS FOR THE ACCOUNT, LOGOUT ETC in HEADER

No route matches {:action=>"show", :controller=>"users"}

Extracted source (around line #5):

2: <div id ="login">
3: <ul>
4:  <li><%= link_to "Sign out", destroy_user_session_path %></li>
5:    <li><%= link_to "Account", user_path(current_user) %></li>
6:  <li><%= link_to "Things", user_things_path(current_user) %></li>
7:  
8: </ul>

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

李白 2024-12-09 01:18:17

经过更多搜索后,我在 stackoverflow 上找到了答案,所以功劳应该来自 上一个问题

该请求将不包含所需的 CSRF 数据,并且截至
Rails 3.0.4 会话会默默地重置,而不是抛出异常
ActionController::InvalidAuthenticityToken 错误。
要解决此问题,请在布局中包含以下内容:

<%= javascript_include_tag :defaults %> 
<%= csrf_meta_tag %>

After a little more searching I found the answer here on stackoverflow, so credit should go to justsee from this previous question

The request will not include the required CSRF data, and as of
Rails 3.0.4 the session is silently reset instead of throwing an
ActionController::InvalidAuthenticityToken error.
To fix this include the following in your layout:

<%= javascript_include_tag :defaults %> 
<%= csrf_meta_tag %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文