2013-07-04 32 views
0

如何在控制檯中爲特定用戶獲取所有路由(如命令rake路由)?我只想要這個用戶可以訪問的路線?Cancan和控制檯命令「rake routes」

有誰知道寶石或是編寫我自己的控制檯命令處理程序的最佳方式?

+0

你有試過什麼嗎?你有沒有可以分享的代碼? – simonmorley

+0

其實我只是很有趣,是否有任何現成的方式(我還沒有找到任何東西)。如果沒有 - 我會盡力做到這一點我的自我,但我從來沒有試圖寫軌道控制檯命令 - 我是新的軌道。 – Kein

+0

你很有趣的是你;) – simonmorley

回答

1

你肯定需要自己寫(我不知道是否有可以插入這個插件)。 cancan並不存儲你可以訪問的特定位置,但cancan只允許你選擇你可以訪問給定的類或實例的方法,如can :read, User,它不綁定在任何方式的路線,並在同一時間路線不直接綁定到模型(他們與控制器綁定)。

基於此,寫這樣的東西也不是那麼容易(不是不可能,但不容易,我不認爲是短)。

最好的辦法是嘗試模擬測試,您可以嘗試訪問每個路由(您可能解析耙路徑的輸出或讀取代碼的生成方式),如果用戶無法訪問該路徑,您標記爲不可訪問。您還需要提供一種在控制檯命令中選擇用戶的方法。