Ruby on Rails - 创建用户时创建配置文件

2024-03-04

所以基本上我已经编写了自己的身份验证而不是使用 gem,因此我可以访问控制器。我的用户创建工作正常,但是当创建我的用户时,我还想在我的个人资料模型中为他们创建个人资料记录。我已经让它大部分工作了,我只是似乎无法将新用户的 ID 传递到新的 profile.user_id 中。这是我在用户模型中创建用户的代码。

  def create
    @user = User.new(user_params)
    if @user.save
        @profile = Profile.create
        profile.user_id = @user.id
        redirect_to root_url, :notice => "You have succesfully signed up!"
    else
        render "new"
    end

配置文件正在创建,它只是不添加新创建的用户的 user_id 。如果有人可以提供帮助,我们将不胜感激。


您确实应该将其作为用户模型中的回调来执行:

User
  after_create :build_profile

  def build_profile
    Profile.create(user: self) # Associations must be defined correctly for this syntax, avoids using ID's directly.
  end
end

现在,这将始终为新创建的用户创建配置文件。

然后你的控制器会被简化为:

def create
  @user = User.new(user_params)
  if @user.save
    redirect_to root_url, :notice => "You have succesfully signed up!"
  else
    render "new"
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby on Rails - 创建用户时创建配置文件 的相关文章

随机推荐

  • JAXB 如何推进 XMLStreamReader?

    我正在使用 JAXB 通过 XMLStreamReader 从非常大的 XML 文件中解组对象 如果我要解组的 XML 元素是分隔的 通过换行符甚至单个空格 则效果很好 如果我要解组的 XML 元素之间没有空格 那么我会丢失所有其他项目 X
  • Rust 编译器什么时候不能证明借用是不相交的?

    In 诺米康第 3 2 节 https doc rust lang org nomicon references html liveness 在 活跃度 标题下 它说 然而 经常出现的情况是 Rust 不够聪明 无法 证明多次借用是不相交的
  • std 映射复合键

    我有一个问题运算符std map 所需的方法 我使用结构作为复合键 如下所示 struct MyKey std string string1 std string string2 std string string3 unsigned in
  • 跟踪实时推文流中的关键字

    我安装并尝试了 tweepy 我现在正在使用以下功能 from API参考 http packages python org tweepy html api html api reference API public timeline 返回
  • 检查拖放是否正在进行

    有什么方法可以检查拖放是否正在进行中 可以检查一些方法或win32 api吗 我知道我可以设置AllowDrop 并使用事件 但在这种情况下它不起作用 基本上我想用代码检查是否any拖放正在进行中 我有一个类似的问题 我自己回答了 经过几个
  • 了解 Tensorflow LSTM 模型输入?

    我在理解 TensorFlow 中的 LSTM 模型时遇到一些困难 我用tflearn http tflearn org 作为包装器 因为它自动完成所有初始化和其他更高级别的工作 为了简单起见 我们考虑这个示例程序 https github
  • MongoDB - 将 CSV 导入嵌套文档

    我有一个架构 其文档结构如下所示 id ObjectId 4f8dcb06ee21783d7400003c venue ObjectId 4f8dcb06ee21783d7400003b name Some event webite www
  • 计算两个数组之间相关性的有效算法[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找一种算法来计算两个双精度数
  • 解析包含自定义格式的日期和时间的字符串

    我有一个下一个格式的字符串 ORDER20100322194007 where 20100322是一个日期并且194007是一个时间 如何解析字符串并获取其中包含的内容DateTime object 它总是以ORDER string pat
  • iOS 12 和 SKShader 中已弃用 OpenGL ES

    我对 SpriteKit 中着色器的概念和使用非常陌生 我发现本教程介绍了如何使用附加到 Color Sprite 的自定义着色器属性的自定义着色器文件 Fractal fsh 渲染 Mandelbrot 分形 https www wehe
  • Logstash 的流行为不一致 - ELK

    我有一个包含几个平面字段和几个嵌套字段的索引 我正在尝试通过 Logstash 将 SQL Server 中的信息通过特定 ID 流式传输到嵌套字段中 当我流式传输数据时only one然后它就完全成功地通过了 没有任何问题 另一方面 当我
  • 释放 Javascript 对象使用的内存

    我应该自己释放分配的内存 还是有一种垃圾收集器 在 JavaScript 中使用以下代码可以吗 function fillArray var c new Array c push 3 c push 2 return c var arr fi
  • 将 Google Analytics 代码放置在 WordPress 特定页面中

    在客户填写联系表单后 我试图让 Google Analytics 代码在感谢页面上工作 并且我尝试使用 HTML 将其放入 Wordpress 后端管理下的页面中的感谢页面中tab 但它似乎在代码之间生成不必要的 p 和 br 标签 特别是
  • 忽略标志指针 0x10ef76ec0 的 RegisterValidateFunction():在 Xcode 中的该地址处找不到标志

    我该如何解决这个问题 W0721 13 54 19 105928 1 commandlineflags cc 1503 忽略标志指针 0x10ef76ec0 的 RegisterValidateFunction 在该地址找不到标志 出现此问
  • Mac OS Gatekeeper 阻止签名命令行工具

    我在 Xcode 中有一个 命令行工具 目标 不是应用程序包 它被 Gatekeeper 阻止 我多年来一直使用这个工具作为我的 PostCheck 地址簿插件的简单安装程序 2012 年 我用我的 Apple 开发者 ID 签署了该工具
  • 如何在android中测量环境温度

    我想在 Android 设备上测量环境温度 但我的设备不包括温度计传感器 我怎样才能测量它 谢谢 这是如何获取的基本示例Android 中的环境温度 import android support v7 app AppCompatActivi
  • Jaspic ServerAuthModule 委托给 JAAS Krb5LoginModule

    我必须编写一个自定义 Jaspic ServerAuthModule 它需要将专有的身份验证 Cookie 添加到 HTTP 响应和 HTTP 请求 以传播到应用程序服务器上运行的应用程序 身份验证必须使用 Kerberos SPNEGO
  • 在Python中将str数据转换为文件对象

    我正在将视频发布到 Google Cloud Buckets 签名的 PUT url 就可以解决问题 但是 如果文件大小大于 10MB 它将无法工作 因此我找到了一个开源项目 可以让我执行此操作 但它使用类似文件的对象 def read i
  • 无法(无法)部署到 Visual Studio Android 模拟器 (Xamarin.Forms)

    调试 Xamarin PCL 项目时遇到问题 我知道代码没问题 因为我可以在 Windows Phone 模拟器上调试它 但无法在 Android 模拟器上调试它 在Win10上使用VS2015 Prof 我可以毫无问题地构建解决方案 只需
  • Ruby on Rails - 创建用户时创建配置文件

    所以基本上我已经编写了自己的身份验证而不是使用 gem 因此我可以访问控制器 我的用户创建工作正常 但是当创建我的用户时 我还想在我的个人资料模型中为他们创建个人资料记录 我已经让它大部分工作了 我只是似乎无法将新用户的 ID 传递到新的