Rails:在 Rails 中使用带有 has_one 关联的构建

2023-11-25

在这个例子中,我创建了一个user没有profile,然后稍后创建一个profile对于该用户。我尝试使用构建has_one协会但是爆炸了。我看到这个工作的唯一方法是使用has_many. The user应该最多只有一个profile.

我一直在尝试这个。我有:

class User < ActiveRecord::Base
  has_one :profile
end

class Profile < ActiveRecord::Base
  belongs_to :user
end

但是当我这样做时:

user.build_profile 

我收到错误:

ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'profiles.user_id' in 'where clause': SELECT * FROM `profiles` WHERE (`profiles`.user_id = 4)  LIMIT 1

Rails 有没有办法实现 0 或 1 关联?


The build方法签名不同has_one and has_many协会。

class User < ActiveRecord::Base
  has_one :profile
  has_many :messages
end

构建语法为has_many协会:

user.messages.build

构建语法为has_one协会:

user.build_profile  # this will work

user.profile.build  # this will throw error

阅读has_one协会文档更多细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails:在 Rails 中使用带有 has_one 关联的构建 的相关文章

随机推荐

  • iOS - 从指数+模创建 SecKeyRef

    我想通过使用指数和模数作为私钥来解密 iPhone 上的 RSA 编码 blob 在 Java 使用 javax crypto 中 这可以通过如下代码轻松实现 1 key RSAPublicKeySpec keySpec new RSAPu
  • 使用 Maven 强制重新下载发布依赖项

    我正在开发一个依赖于 X 的项目 X 又依赖于 Y 我曾经在项目的 pom xml 中明确包含 Y 然而 它没有被使用 为了让事情变得更清晰 我将它作为依赖项添加到 X 的 pom 中 X 被标记为发布依赖项 问题是 从我的项目的 pom
  • 如何自动生成proguard-android.txt?

    阅读所有精彩的新事物Android 的 ProGuard 改进做 我切换到新方案取消注释在新创建的项目中添加以下行 proguard config sdk dir tools proguard proguard android txt pr
  • 控制 Magento API 调用的结果数量

    我有一个程序 用于通过 API 将 Magento 商店连接到后端库存控制系统 目前它的作用是查询 Magento API 中所有处于 Pending 状态的订单 将它们插入后端系统 然后将它们的状态设置为 Magento 中的 正在处理
  • 如何创建快捷方式以从命令行启动具有管理员权限的应用程序?

    我有一个安装程序 Inno Setup 它将我的应用程序安装到用户定义的路径 在安装例程结束时 我想创建一个以管理员权限启动应用程序的快捷方式 该解决方案适用于从 winXP 到 Win7 的所有 win 版本 我可以做什么来实现这个目标
  • 根据 Pandas 的条件重置累计总和

    我有一个像这样的数据框 customer spend hurdle A 20 50 A 31 50 A 20 50 B 50 100 B 51 100 B 30 100 我想计算累积的附加列 当累积总和大于或等于以下障碍时 该列将根据同一客
  • 函数隐式参数在传递给高阶函数后不再如此

    在 Scala 中 您可以执行以下操作 def foo implicit v Int println v def h x Int implicit val i Int x foo h 42 gt 42 h呼叫得到foo作为闭包的引用 尝试通
  • Django:ValueError:无法创建表单字段,因为尚未加载其相关模型

    我正在处理的 Django 项目遇到一些问题 我现在有两个应用程序 它们需要相当多的重叠 我真的只开始了第二个项目 称为workflow 我正在尝试为该申请制作第一份表格 我的第一个应用程序叫做po 在里面workflow应用程序我有一个名
  • “cout << cout” - 输出代表什么?

    经过一整天的编码后 我不小心写了 cout lt lt some text lt lt cout 代替 cout lt lt some text lt lt endl 现在它打印出一个内存地址 它指向什么 std cout是一个实例std
  • 如何使用 matplotlib.pyplot 更改图例字体大小

    这里有一个简单的问题 我正在尝试使用以下方法获取图例的大小matplotlib pyplot变小 即文本变小 我正在使用的代码是这样的 plot figure plot scatter k sum cf color black label
  • Spring OAuth:带有授权服务器后端的资源服务器

    我想开发两项独立的服务 一项用于业务 一项用于使用 Spring OAuth 2 进行用户身份验证 我们将它们称为业务服务和 OAuth 服务 现在 如果请求未经过身份验证 我希望将业务服务委托给 OAuth 服务 客户端应用程序 Andr
  • 如何将 ProcessBuilder 输出重定向到字符串?

    我正在使用以下代码来启动流程构建器 我想知道如何将其输出重定向到String ProcessBuilder pb new ProcessBuilder System getProperty user dir src generate lis
  • 检查 Ruby 中的整数数组是否递增

    我想检查排序后的数组值是否递增 1 例如 1 2 3 4 5 TRUE 1 2 8 9 10 FALSE 非常感谢任何建议 array 1 2 4 3 array sort each cons 2 all x y y x 1
  • 如何在字典理解中使用 if/else?

    Python 2 7 中是否存在一种方法可以制作如下内容 something if true if condition else something if false for key value in dict items 我知道你可以用
  • 设置 JAR 文件的类路径

    我最近刚刚使用 Eclipse 创建了 Java 项目 需要 2 个 JAR 文件 phiget21 jar 和 mysql jar 在 Eclipse 中运行程序时一切正常 并且我注意到 jar 文件保存在 lib 文件夹中 我很快就要将
  • DB2 MERGE 语句错误

    我尝试了以下几种变体 但仍然出现错误 有什么方法可以解决这个问题 DB2 10 1 用于 z OS V10 的 DB2 对于以下 MERGE INTO TRGT t USING SRC s ON t ACCTID s ACCTID AND
  • Swift 的 if let 是如何评估的?

    我在 Swift 网站和这里的各种帖子上看到了这段代码 我正在尝试掌握基础知识 这条线如何评价 if let name optionalName 我很困惑 因为它不是 name 可选名称 它正在分配值 那么它如何报告 true 和 当你用
  • 限制在给定时间开放的承诺数量

    以下 TypeScript 执行每个调用doSomething action 一次一个 这意味着列表中的第二项在第一项完成之前不会被调用 async performActionsOneAtATime for let action of li
  • 离线网络应用程序。如何存储数据?

    介绍 应用程序必须能够完全离线运行 在本地存储数据并在有互联网连接时通过 AJAX 将其发布到网上 这可能是几天后 问题 如何使用Javascript存储数据 补充笔记 我不想使用任何服务器端技术 它必须像数据库一样安全 我读过有关 coo
  • Rails:在 Rails 中使用带有 has_one 关联的构建

    在这个例子中 我创建了一个user没有profile 然后稍后创建一个profile对于该用户 我尝试使用构建has one协会但是爆炸了 我看到这个工作的唯一方法是使用has many The user应该最多只有一个profile 我一