我有两个设计模型,Individual和Group。我正在尝试分享注册/确认的类似行为(将用户发送到通知他们已发送电子邮件的页面,或在确认后将其发送到编辑页面等)。
我的问题是,这仅适用于个人。它尚未适用于群组。
配置/ 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 :(得分:0)
我非常关注routes.rb中提供的行,我没有注意到文件顶部的另一个“devise_for:groups”。在这种情况下,显然设计将覆盖以前的值。愚蠢的错误。
答案 1 :(得分:0)
for scale&amp;没有错误 - 更好地去除。
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' }