加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在注册时创建用户配置文件,添加配置文件表单字

发布时间:2020-12-17 01:28:03 所属栏目:百科 来源:网络整理
导读:我有一个rails 3.1 app with devise: 用户has_one个人资料 个人资料belongs_to用户 推翻了devise registration_controller 自定义注册视图一切正常,注册工作正常 现在我想补充一下: 在注册页面上,我想添加个人资料中的字段,如名字,姓氏 还没有用户,将在提
我有一个rails 3.1 app with devise:

>用户has_one个人资料
>个人资料belongs_to用户
>推翻了devise registration_controller
>自定义注册视图一切正常,注册工作正常

现在我想补充一下:

>在注册页面上,我想添加个人资料中的字段,如名字,姓氏
>还没有用户,将在提交表单时创建
>我需要使用此名字创建配置文件,最后一个

我该怎么做?我尝试了几个想法,也来自堆栈溢出,但似乎无法让它工作.我尝试嵌套属性,这是不行的方法,这样做会在用户注册时在数据库中创建一个配置文件记录,插入名字和姓氏

我的注册#new view:

= simple_form_for(resource,:as => resource_name,:url => registration_path(resource_name)) do |f|

    = devise_error_messages!

    = f.input :username,:label => 'Username'
    = f.input :email,:label => 'Email'
    = f.input :password,:label => 'Password'
    = f.input :password_confirmation,:label => 'Password confirm'

    // start fields for profile
    = f.fields_for :profile do |f|
      = f.label :bod_day
      = f.text_field :bod_day
    // end fields for profile


    = f.button :submit,t(:submit,:scope => :register)

在我的用户模型中,我有这个:

accepts_nested_attributes_for :profile

解决方法

我认为问题是在呈现表单时该用户上不存在任何配置文件,一种简单的方法可以在渲染字段之前在内存中构建它:

= simple_form_for(resource,:label => 'Password confirm'

    // make a new profile in memory
    = resource.build_profile

    // start fields for profile
    = f.fields_for :profile do |f|
      = f.label :bod_day
      = f.text_field :bod_day
    // end fields for profile


    = f.button :submit,:scope => :register)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读