回答

2

如果這些操作都需要管理員的權利,你最好過濾器之前使用。

before_filter :correct_user, :only => [:new, :create, :edit, :update] 
+0

的問題是:用戶使「創造」沒有「新」的行動?或者他可以在沒有「編輯」的情況下進行「更新」操作? – bravedick 2012-07-21 13:59:17

+3

是的,他可以僞造一個帖子請求。 – gmalette 2012-07-21 13:59:56

1

在用戶無法訪問的每一個地方,如果他沒有權限。

我會結構中的代碼,這樣你就不必把它寫在行動:

before_filter :load_car, :redirect_unless_correct_user!, :except => :index 

protected 
def load_car 
    @car = Car.find(params[:car_id]) 
end 

def redirect_unless_correct_user! 
    redirect_to(root_path) unless (current_user == @car.user) || user.admin? 
end