2009-11-03 36 views
1

我是新來的Rails,我試圖創建一個標準的CRUD rails應用程序來顯示文本帖子。這與博客非常相似,我希望通過身份驗證的用戶能夠編輯和銷燬帖子,而訪問者只需查看和瀏覽現有帖子即可。通過身份驗證來管理編輯/銷燬/新鏈接的最佳方式是什麼?

我想知道什麼是最好的管理方式。到目前爲止,我一直在使用兩個控制器,第一個控制器有一個before_filter,因此每個路由都需要身份驗證,並且關聯的視圖具有編輯/銷燬/新鏈接。第二個控制器沒有認證過濾器,視圖沒有鏈接來編輯或銷燬帖子。

此解決方案,但我不認爲這是非常乾燥。我有一種感覺,如果堅持這種情況,隨着我添加更多功能,事情會變得越來越複雜。有沒有更好的方法來管理?我相信這一定是常見問題。

回答

2

你應該給鎖定一試:http://stonean.com/page/lockdown

鎖定是RubyOnRails授權系統(版本2.X)。它是 旨在處理一個簡單的公共vs 私人配置非常好 粒度訪問控制。

+0

謝謝。我看着這個,然後連接到掛鎖和acl9。我認爲這些圖書館正是我正在尋找的。 – 2009-11-05 11:06:44

1

瑞安談論這個問題(RY具有管理控制器和普通用戶控制器)和Railscast #19一個更好的解決方案。

順便說一句,我希望你的第二個控制器(在一個沒有授權before_filter)沒有更新或破壞行動。即使您的視圖中沒有鏈接,一個不擇手段的人也可能會創建一個請求來混淆您的數據。

+0

謝謝你的這個鏈接,它確實幫助我理解了認證和授權之間的區別。我以前從來沒有聽說過這個。 – 2009-11-05 11:05:54

+0

@邁克爾巴頓:沒問題......總是樂於幫忙。 :) – 2009-11-05 12:15:33

1

我使用role_requirement通過「admin」和「user」角色控制用戶對給定控制器方法的訪問。我使用手動滾動庫來確保給定用戶有權訪問/操作特定數據。舉例來說,如果你沒有「擁有」某個帖子(比如#3),但是你嘗試在/ posts/destroy/3中刪除它的ID,你會被拒之門外。

相關問題