2011-08-30 79 views
1

我有一個奇怪的問題與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> 

提前致謝!

+1

您可以發佈從路線和控制器相關者的代碼? –

+0

您正在使用哪個版本的rails和devise? – eugen

+0

我也看到了這個問題。當爲用戶對象的嵌套資源調用destroy方法時,用戶將被註銷。我有最新版本的設計和Rails。 –

回答

1

多一點搜索,我發現這裏的計算器答案後,所以信貸應該去從this previous question

到justsee的請求將不包括所需的CSRF的數據,並作爲 的Rails 3.0.4中的會話默默重置,而不是拋出一個 ActionController :: InvalidAuthenticityToken錯誤。 要解決這個問題包含在你的佈局如下:

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