我有一个RoR问题,虽然这很容易,但我无法做到。
在这里。
我有一个使用设计创建的用户模型。我还想使用scaffold创建一个Profile模型,并将其与User。
相关联现在,只要使用设计创建帐户,我就想创建个人资料条目。我就是这样做的:
user.rb
has_one :profile
before_create :build_profile
然后这是我的个人资料模型
profile.rb
belongs_to :user
我的个人资料架构只有:
[username | organization | bio | birth date | gender | created_at | updated_at]
现在,当调用devise user_signup路由时,只有电子邮件,密码和密码确认。
我想要的是将所有Profile模式与设计用户创建页面(表单)一起包含在内。
无论如何我能做到吗?如果Rails不能这样做,有没有办法可以在创建帐户时重定向用户,重定向到个人资料创建页面(并且可能不让他访问其他功能,直到他填写个人资料页面) ?
P.S。我刚刚开始开发RoR并且不知道如何解决这个问题。
如果您可以为我提供任何代码段,那就太棒了!谢谢!
答案 0 :(得分:0)
因此#myModal {
z-index:100000;
}
和belongs_to
是ActiveRecord助手,可让您轻松调用相关模型。但是您必须自己创建外键,在本例中是用户配置文件上的user_id,因此您的配置文件架构将如下所示:
has_one
将[username | organization | bio | birth date | gender | user_id | created_at | updated_at]
与Profile
关联后,如果您希望他们填写个人资料信息,您需要将其重定向到User
视图,他们会在其中添加所有这些额外的字段,将保存到配置文件中。您也可以将其作为User sign_up表单本身的一部分来完成,这取决于您。
要使用Devise启用自定义视图,您可以在sign_up表单上添加额外字段,然后将其分配给Profile,您需要在Profile#edit
文件中设置config.scoped_views = true
。
之后,您可以在config/initializers/devise.rb
中编写完全自定义视图,具体取决于角色。只需添加额外的字段,然后再将它们分配给Profile in custom自定义Devise控制器,比如users/sessions/new
。有关详细信息,请查看有关观看次数here和控制器here的说明。
您可以在ApplicationController上为Devise进行自定义重定向。您可以在Devise wiki
上阅读更多内容