java 配置文件设计,在设计注册控制器中添加用户配置文件

我有一个Rails应用程序,有三种用户,专业人士,学生和普通公民 . 因此,我使用三种不同的配置文件制作了用户模型多态 .

User.rb

belongs_to :profile, polymorphic: true

Professional.rb

has_one :user, as: :profile, dependent: :destroy

Student.rb

has_one :user, as: :profile, dependent: :destroy

Citizen.rb

has_one :user, as: :profile, dependent: :destroy

我想使用Devise作为中心注册并为User模型创建设计

rails generate devise User

然后我创建了一个继承自Devise Registrations控制器的Registrations控制器,并在after_sign_up_path_for方法中,我将用户分配给用户在注册表单上选择的任何配置文件 .

class RegistrationsController < Devise::RegistrationsController

protected

def after_sign_up_path_for(user)

if user.professional === true

user.profile = ProfessionalProfile.create!

user.save!

elsif

....

end

end

现在,这可行,通过覆盖应用程序控制器中的 def after_sign_in_path_for(resource) ,我可以将用户重定向到他们创建的任何配置文件

def after_sign_in_path_for(resource)

if current_user.profile_type === 'ProfessionalProfile'

professional_profile_path(current_user)

elsif

....

end

然而,即使这有效,我对Rails的经验很少(在制作我自己的应用程序方面;我已经遵循了一些教程)并设计,所以我想知道,在我继续开发应用程序之前,如果我通过这种方式创建配置文件,无论是设计还是其他任何事情都会遇到问题 . 有一个更好的方法吗?

我想作为一种可能的替代方案,我想知道是否应该尝试覆盖Devise的创建用户操作,以便它同时创建相关的配置文件 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值