2012-07-08 78 views
0

我有兩個設計模型,個人和組。我試圖分享類似的行爲註冊/確認(發送用戶到一個頁面,通知他們一封電子郵件已發送,或發送到編輯頁面確認後,等等)共享兩個設計模型RegistrationController

我的問題是,這僅適用於個人。它還沒有爲團體工作。

配置/ outes.rb:

devise_for :individuals, :controllers => {:confirmations => "Confirmation", :registrations => "Registrations"} 

devise_for :groups, :controllers => {:confirmations => "Confirmation", :registrations => "Registrations"} 

應用程序/控制器/ registrations_controller.rb:

class RegistrationsController < Devise::RegistrationsController 
    def after_inactive_sign_up_path_for(item) 
    "/post_sign_up?email=#{item.email}" 
    end 
end 

應用程序/控制器/ confirmation_controller.rb:

class ConfirmationController < Devise::ConfirmationsController 
    def after_confirmation_path_for(name, resource) 
    case resource.class 
     when Individual then edit_individual_path resource 
     when Group then edit_group_path resource 
     else super name, resource 
    end 
    end 
end 

上面的代碼僅適用於個人。不明白爲什麼。

回答

0

我很專注於routes.rb中提供的行,我沒有注意到文件頂部的另一個「devise_for:groups」。顯然,在這種情況下,設計會覆蓋以前的值。愚蠢的錯誤。

0

規模&沒有錯誤 - 更好地分開。

admin_registration_controller.rb:

class AdminRegistrationsController < Devise::RegistrationsController 
end 

user_registration_controller.rb:

class UserRegistrationsController < Devise::RegistrationsController 
end 

路線:

devise_for :admins, controllers: { registrations: 'admin_registrations' } 
devise_for :users, controllers: { registrations: 'user_registrations' }