0
我正在使用devise連接到我的第一個Ruby on Rails應用程序。我有一些工作,但我碰到了一個問題,我的新手大腦似乎無法理解。Ruby on Rails - CanCan用戶在銷燬行動期間爲零
我想刪除一個項目模型。該康康舞ability.initialize電話不能正常工作,因爲用戶是零,即使我登錄和其他呼叫成功授權
在我的節目鑑於過去了,我有此鏈接:
<%= link_to "Purge this project", @project, method: :delete, data: {confirm: "There is no way to get it back. Are you sure you want to permanently remove this project?"} %>
我想我的控制器的接線是否正確了,其他動作均得到恰當授權
class ProjectsController < ApplicationController
load_and_authorize_resource
...
def destroy
puts "***********removing: " + params.inspect
@project.destroy
...
end
我的康康舞初始化做到這一點:
def initialize(user)
user ||= User.new # guest user
puts "******** Evaluating cancan permissions for: " + user.inspect
...
當我點擊上面的刪除鏈接,這被puts'ed控制檯(注意user.id如何爲零,這是造成的,因爲我的設置,如果用戶是零客)
******** Evaluating cancan permissions for: #<User id: nil, email: ""...
Started DELETE "/projects/16" for 127.0.0.1 at 2013-04-04 10:48:23 -0400
Processing by ProjectsController#destroy as HTML
Parameters: {"id"=>"16"}
WARNING: Can't verify CSRF token authenticity
問題:爲什麼用戶無?它與CSRF令牌問題有關嗎?有沒有什麼特別的關於http方法=刪除,我失蹤了?我怎樣才能阻止愚蠢,它傷害?
前面的「秀」行動取得了這一預期看跌期權(結論的東西應該足夠有線了):
******** Evaluating cancan permissions for: #<User id: 2, email: "doug...
謝謝!