2010-03-29 171 views
0

我希望能夠自己編輯和刪除資源,但不允許應用程序的用戶這樣做。限制編輯和刪除

有沒有在Rails中這樣做的簡單方法?

一個不完整的解決方案只是從索引視圖中刪除「刪除」和「編輯」按鈕,但不會禁用它們通過直接HTTP請求來執行此操作的能力。

的運轉軌道2.2.2和1.8.7的紅寶石

回答

3

controller添加的before_filter,如下圖所示:

class PostsController < ApplicationController 

    before_filter :require_god, :only => [:edit, :update, :destroy] 

private 
    def require_god 
    unless current_user.id == (@@god ||= User.find_by_login("phleet")).id 
     flash[:notice] = "You don't have access to this page" 
     redirect_to root_path 
     return false 
    end 
    end 

end 
1

我會建議CanCan。這非常簡單,您只需要使用ability.rb來定義不允許用戶進行操作。

0

看看active_scaffold,admin_data和typus(所有可用的github上)。他們都是插件,使得構建管理方面的事情變得輕而易舉,以便您可以輕鬆地將管理內容與面向用戶的內容分開。就我個人而言,我喜歡typus,但它需要您有一個typus_users表,它與其他任何用戶表分開,這可能不符合每個人的口味。另一方面,如果你不想要任何複雜的東西,或者你寧願從頭開始構建它,一個簡單的before_filter就可以做到這一點......