2011-12-02 53 views
1

我想創建一個檢查工具/耙子任務,它將動態地遍歷所有可能從外部訪問的公共方法並檢查我們的授權規則。如何列出所有Rails 3控制器及其公共方法

爲此,我需要收集所有控制器及其所有公共方法。怎麼做?我想使用Ruby反射或元數據技術,而不是使用grepping文件。

+0

只有它纔有意義,如果你有一個包羅萬象的規則中使用的形式的列表比如'match':controller(/:action(/:id(。:format)))'' –

回答

2

AFAICT在一般情況下這是不可能的,因爲你無法判斷哪些參數轉到哪裏,例如/items/foo/id/items/foo?bar=baz?另外,哪些參數的值是可以的?

但是你可以用

Rails.application.routes.routes.map(&:path) 

一個體面的值應給予您在耙路線(/klass/:id/action(.:format)

+0

我將只檢查授權規則(如果它存在以及規則是什麼)。謝謝 – lzap

+0

是的,我的意思是說,例如,您可能有權編輯管理員和最初創建它們的用戶的項目,但對其他用戶不適用,這取決於適當的參數選擇。 – riffraff

相關問題