我有一个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的创建用户操作,以便它同时创建相关的配置文件 .

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

  1. 用户配置文件服务登录失败。无法加载用户配置文件

    昨天电脑正常关闭,可是今天打开时提示"用户配置文件服务登录失败.无法加载用户配置文件"在使用F8 最后一次正确配置后,还是无效,最后只有重新创建账号,问题解决了,我也从网络上找到了 ...

  2. Android P 解决“从锁定屏幕中添加用户”功能不起作用

    问题描述 打开设置–>系统–>高级–>多用户,如下图所示: 测试同事发现当没有启用这个功能时候,在锁屏页面还是可以添加新用户,默认是没有打开这个功能的.先看看锁屏页面,在锁屏页面调出 ...

  3. 计算机用户无法加载配置文件,““用户配置文件服务登录失败。无法加载用户配置文件””的解决方案...

    [问题描述]: 用户配置文件服务登录失败.无法加载用户配置文件 [原因分析]: 1.\t加载失败 2.\t用户帐户配置文件损坏 [简易步骤]: 无 [解决方案]: 方案一:系统加载失败,重新启动电脑. ...

  4. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  5. 使用PHP往Windows系统中添加用户

    可以实现, 方法有二. 一.再Web中添加用户 因为添加用户,所以你运行PHP程序的用户必须是管理员权限(Administrator),并且同时需要你的php.ini中的安全模式没有打开,并且关闭函数 ...

  6. MySql中添加用户/删除用户

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  7. mysql中给用户添加密码_MySql中添加用户,新建数据库,用户授权,删除用户,修改密码...

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  8. 在Tomcat中添加用户和权限

    Tomcat中添加用户和权限 1.添加用户和权限 2.验证添加的用户和权限是否可以使用 在使用Tomcat时, 我们往往会需要添加用户和权限, 如: Jenkins 在部署项目到 Tomcat 服务器 ...

  9. 游戏建模控件Aspose.3D for Java最新版支持在Wavefront OBJ中添加点云支持

    Aspose.3D for Java是独立的Gameware和计算机辅助设计(CAD)API,用于处理3D文件.同时支持大多数流行的3D文件格式,应用程序可以轻松创建,读取,转换和修改3D文件.此外, ...

  10. java 艺术字_Java 在Word文档中添加艺术字的示例

    与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...

最新文章

  1. 为啥辣椒会辣得人嘴巴疼?这个问题竟然和今年诺奖有关
  2. LINUX分区空间扩容操作
  3. 书评 —— 深入网站开发和运营
  4. Swift学习------常量与变量
  5. Java 缓冲流简介及简单用法
  6. 【PM】当大厂来临时,求生?求胜?
  7. 减一天 日期函数_一文掌握excel中的日期函数
  8. 系统架构设计师 - 软件架构设计 - 架构评估
  9. 货币量化宽松的投资机会-郎咸平
  10. python实现二分查找算法
  11. 35.5. array route
  12. Maya批量属性修改链接插件1.1.0更新
  13. python当中df的用法_Pydf替代“df”命令检查不同颜色的磁盘使用情况
  14. 汇总我关注的技术博主的2021年度总结
  15. Proteus仿真51单片机入门
  16. [转|会计学习]资产盘盈、盘亏的会计处理
  17. html发票页面,HTML5 发票模板
  18. storm各组件特点
  19. java补空格_JAVA STRING 对象自动补齐空格
  20. 家到学校路线图怎么画_从家到学校的详细地图这样画

热门文章

  1. 学习Bloom Filter,处理“海量”数据
  2. linux 基础命令汇总
  3. 火爆Github的刷题攻略,现在配套网站上线了!!力扣刷题网站,刷题路线
  4. Linux 如何查看是否开启journal
  5. void value not ignored as it ought to be 报错原因
  6. Illustrator最新教程,如何在 Illustrator 中微调图标?
  7. 在苹果mac中使用excel时,如何快速求和多行数值?
  8. 玩转MacBook的五个使用技巧
  9. IP Scanner Pro for mac(局域网IP扫描软件)
  10. Mac可以在Dock上监视磁盘活动