我在我的應用程序中有一個權限模型,它將(用戶,角色,項目)聯繫在一起。Rails3 - 權限模型Before_Save檢查?
我正在尋找學習如何做的是防止用戶去除親自爲他們的項目...
你能給我以下的反饋?
class Permission < ActiveRecord::Base
.
.
.
#admin_lock makes sure the user who created the project, is always the admin
before_save :admin_lock
def before_save
#Get the Project Object
project = Find(self.project_id)
if project.creator_id == current_user.id
# SOME HOW ABORT OR SEND BACK Not Allowed?
else
#continue, do nothing
end
end
end
這看起來是不是正確的做法?
而且,我不知道該怎麼做上面以下兩件事情:
- 如何中止防止保存,併發送回一個錯誤味精?
- 獲取模型中的設計,current_user.id,這似乎不可能,那麼Rails的大師應該如何做類似上述的東西?
感謝您在
馬特 - 謝謝。所以如果Models不知道current_user。我如何在控制器級別執行此操作。在控制器的某處,我做了一些類似admin_lock(current_user)的事情? admin_lock在哪裏居住,在控制器或模型中?我有點困惑,因爲我認爲模型應該做所有這些類型或許可/驗證的東西,而控制器是真正的光?幫幫我? – AnApprentice 2010-11-03 00:50:07
編輯我的答案,對不起,我沒有更好的爲你:) – 2010-11-03 01:09:39