2012-07-31 82 views
0

我知道這個問題以前已經問過,但沒有明確的答案,我可以看到。我的用戶有更多的意見,而不僅僅是註冊;簽到;等等(默認設計視圖)。例如他的個人資料頁面,他正在學習的課程,安排他的課程。我想要創建/編輯一個控制器,它將爲用戶提供這些方法和附加視圖。我如何實現它?修改控制器的設計

+1

你有什麼試過? FWIW,我只有我的'常規''users_controller'具有我所有的自定義操作和視圖,並讓Devise負責其餘部分。 – 2012-07-31 00:33:07

+0

我剛剛創建了profile_controller並計劃在其中啓用custion動作。我不確定它的超類應該是什麼。 – 2012-07-31 00:40:33

+0

它的超類應該是常規的'ApplicationController'。這正是我目前正在做的。然後,您需要像'before_filter authenticate_user !,只有:[:private_action]'這樣的內容來保持一些頁面不公開。 – Ashitaka 2012-08-01 02:17:22

回答

0

我最喜歡的技巧是命名空間的設計路線不與我的用戶個人資料頁等衝突。 devise_for需要path_prefix選項,這樣在你config/routes.rb您可以:

devise_for :users, :path_refix => 'd'

和所有的色器件的路線將是/d/users/new,再次留下/users免費。

如果這不適用於您,您可以通過繼承Devise::RegistrationsController來替換負責創建和編輯視圖的默認設備控制器,並將其路由添加到它。你可以按照指示here尋找相當好的方向