我試圖在用戶通過設計確認後確認其帳戶後將用戶路由到自定義歡迎頁面。自定義頁面位於/ districts/setup /,可通過districts_setup_path訪問。Rails3爲可確定的模塊設計自定義路由
要做到這一點,我添加了自定義路由,
devise_for :users, :controllers => { :registrations => 'registrations', :confirmations => 'confirmations' }
,並創建了自己的控制器。然後,我有超載confirmations_controller.rb,現在有:
(應用程序/控制器/ confirmations_controller.rb)
class ConfirmationsController | Devise::ConfirmationsController # GET /resource/confirmation?confirmation_token=abcdef def show self.resource = resource_class.confirm_by_token(params[:confirmation_token]) if resource.errors.empty? set_flash_message(:notice, :confirmed) if is_navigational_format? sign_in(resource_name, resource) redirect_to districts_setup_path else render_with_scope :new # not: # respond_with_navigational(resource.errors, :status => :unprocessable_entity){ end end end
這種運作良好,但我很緊張,我不是在mostideal這樣做和健壯的方式。特別是,我剛剛刪除了我真的不明白的respond_with_navigational(...)行。
我希望將這一切寫成Devise wiki的操作方法,我只是在尋找對軌道相當新的反饋,甚至更新的Devise/engines/warden。
我一直在測試這個,它似乎工作正常。 – bonhoffer 2011-04-27 02:59:23
不應該有辦法只寫一個提供正確路徑的幫助方法嗎?我也想弄清楚這一點。 – RyanJM 2011-06-01 22:32:31