我在我的事件控制器中有一個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
這怎麼可能,這不是通過?
你可以添加一些調試,看看那個時候'param [:user_id]'和'current_user.id'是什麼嗎? –
剛剛測試過它... params [:user_id]和current_user.id都等於1 ...所以它應該通過...但不。 –