2011-11-06 49 views
0

我在我的事件控制器中有一個remove_attendee操作。我將它傳遞給用戶的user_id以刪除和:從中刪除用戶的事件的ID。通過params傳遞user_id,然後檢查控制器中的user_id不起作用

基本上,我想仔細檢查被請求刪除的用戶是current_user。你應該只能從事件中移除自己。我的路線設置爲這樣:

post "/remove_attendee/:user_id" => "events#remove_attendee", :as=>:remove_attendee 

然後我通過current_user.id爲:USER_ID這樣:

<%= button_to 'Decline Event', remove_attendee_event_path(:user_id => @current_user.id), 
                   :method => :post, 
                   :class => "button" %> 

但是,如果當我仔細檢查:USER_ID == current_user.id在我的事件控制器,它不工作:

def remove_attendee 
    session[:return_to] = request.referrer 
    @event = Event.find(params[:id]) 
    if params[:user_id] == current_user.id 
     if @event.remove_attendance(params[:user_id]) 
     flash[:success] = "User removed from event." 
     else 
     flash[:error] = "Could not remove user" 
     end 
    else 
     flash[:error] = "Could not remove user" 
    end 
    redirect_to session[:return_to] 
    end 

我最終想要的事件所有者(@ event.owner_id),以便能夠刪除與會者以及...但是這是打破部分。它應該工作...我正在檢查剛剛通過的值。我把一些調試信息在:

def remove_attendee 
    session[:return_to] = request.referrer 
    @event = Event.find(params[:id]) 
    flash[:pass] = false 
    flash[:test1] = params[:user_id] 
    flash[:test2] = current_user.id 
    if params[:user_id] == current_user.id 
     flash[:pass] = true 
     if @event.remove_attendance(params[:user_id]) 
     flash[:success] = "User removed from event." 
     else 
     flash[:error] = "Could not remove user" 
     end 
    end 
    redirect_to session[:return_to] 
    end 

當頁面重新加載運行後remove_attendee,:通=假,:TEST1 = 1:TEST2 = 1

這怎麼可能,這不是通過?

+0

你可以添加一些調試,看看那個時候'param [:user_id]'和'current_user.id'是什麼嗎? –

+0

剛剛測試過它... params [:user_id]和current_user.id都等於1 ...所以它應該通過...但不。 –

回答

2

我想我想通了。 params [:user_id]是一個字符串,所以它不等於current_user.id,它是一個整數。所以我這樣做:

params[:user_id].to_i == current_user.id 

這工作!

+0

不錯,我應該發現一個。你可以接受你自己的答案,但你可能需要等待一段時間。 –

相關問題