将列数据添加到“has_many through”关系

亚历克斯·高斯曼

我的 rails 应用程序用于组织包含问题的作业。某些作业共享问题,因此我没有复制该数据,而是选择了第三个表,称为 AssignmentQuestions,将问题链接到作业。

AssignmentQuestions 表还有一个名为“number”的列。

举个例子:我可以有一个化学作业和一个生物学作业,它们都包含这样一个问题“你觉得这个学科最有趣的是什么?”。在化学作业中,这可能是问题 6,而在生物学作业中,这可能是问题 9。在这种情况下,我的表格(包含相关条目)如下:

分配 (ID,名称)

  • 1、化学
  • 2、生物学

问题 (ID,内容)

  • 1、“你觉得这个主题最有趣的地方是什么?”

作业 问题(assignment_id, questions_id, number)

  • 1, 1, 6
  • 2, 1, 9

此设置允许我通过 AssignmentQuestions 将作业与问题相关联,如下所示:

class Assignment < ApplicationRecord
  has_many :question_associations, class_name: "AssignmentQuestion"
  has_many :questions, through: :question_associations
end

这允许我通过控制台中的表达式访问给定作业的问题内容:

>> Assignment.first.questions.first.content
=> "What do you find most interesting about this subject?"

不过,除此之外,我还想要通过控制台中的类似表达式访问问题编号(该分配独有)的能力:

>> Assignment.first.questions.first.number
=> 6

但是,目前这是不可能的,因为“数字”列位于 AssignmentQuestions 表中,而不是 Questions 表本身。

我想我可以遍历所有关联的 Questions 和 AssignmentQuestions 并构建我自己的对象哈希,其中包含“content”属性和“number”属性。但是,我希望可能有更好的方法通过关联本身来做到这一点,以便在数据库中进行工作。

有没有办法让我加入带有问题关联的数字列,以便我可以访问两者?

阿里朱德

您可能希望从作业中获取第一个 question_association 而不是第一个问题:Assignment.first.question_associations.first.number

它更有意义遍历该关联,如果你需要的数字太(如:Assignment.first.question_associations.order(number: :asc).includes(:question).each do |assoc|你有assoc.numberassoc.question内环路的数量排序,预加载的问题)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ActiveRecord如何在Rails中通过has_many:through关系将现有记录添加到关联中?

来自分类Dev

如何在Rails中以编程方式将数据添加到模型的has_many关系中?

来自分类Dev

将急切加载添加到自定义has_many关系中

来自分类Dev

Rails:将属性值添加到has_many:through关联的联接表中的几个新记录中

来自分类Dev

Rails在has_many:through关系中创建数据

来自分类Dev

如何实际使用has_many:through并建立关系

来自分类Dev

链接到has_many中的关系名称:through

来自分类Dev

如何实际使用has_many:through并建立关系

来自分类Dev

Rails - 将数据添加到关系的关系表

来自分类Dev

Rails 4:附加到“ has_many”关系而不保存到数据库

来自分类Dev

如何在Rails中的同一模型(用户)之间建立has_many:through关系?

来自分类Dev

在rails_admin中为has_many:through关系使用rails 4中的orderable

来自分类Dev

has_many中的Rails NameError未初始化常量:through关系

来自分类Dev

Rails Active Record,从has_many:through关系中获取相关记录,并与where子句关联

来自分类Dev

Ruby/rails:将 has_many 关系的样本保存到数据库?

来自分类Dev

对has_many关系的Arel关系参考

来自分类Dev

Mongoid has_many关系在枚举时返回假数据

来自分类Dev

Rails 4:在不保存到数据库的情况下追加到“ has_many”关系

来自分类Dev

使用:through为has_many关联添加字段

来自分类Dev

多对多(has_many:through)-表单如何添加子项?

来自分类Dev

多对多(has_many:through)-表单如何添加子项?

来自分类Dev

Rails Active Record,从has_many:through关系中获取相关记录,并通过where子句设置record

来自分类Dev

Rails 4 has_many:through关系:在从父模型创建动作时分配默认值以加入模型属性

来自分类Dev

核心数据将数据添加到Swift中的关系

来自分类Dev

如何使用一对多关系将数据添加到核心数据?

来自分类Dev

Ruby on Rails'has_many:through',存储数据

来自分类Dev

Ruby on Rails'has_many:through',存储数据

来自分类Dev

Laravel多对多关系,是否将更多对象添加到“数据透视”中?

来自分类Dev

使用实体框架将数据添加到多对多关系

Related 相关文章

  1. 1

    ActiveRecord如何在Rails中通过has_many:through关系将现有记录添加到关联中?

  2. 2

    如何在Rails中以编程方式将数据添加到模型的has_many关系中?

  3. 3

    将急切加载添加到自定义has_many关系中

  4. 4

    Rails:将属性值添加到has_many:through关联的联接表中的几个新记录中

  5. 5

    Rails在has_many:through关系中创建数据

  6. 6

    如何实际使用has_many:through并建立关系

  7. 7

    链接到has_many中的关系名称:through

  8. 8

    如何实际使用has_many:through并建立关系

  9. 9

    Rails - 将数据添加到关系的关系表

  10. 10

    Rails 4:附加到“ has_many”关系而不保存到数据库

  11. 11

    如何在Rails中的同一模型(用户)之间建立has_many:through关系?

  12. 12

    在rails_admin中为has_many:through关系使用rails 4中的orderable

  13. 13

    has_many中的Rails NameError未初始化常量:through关系

  14. 14

    Rails Active Record,从has_many:through关系中获取相关记录,并与where子句关联

  15. 15

    Ruby/rails:将 has_many 关系的样本保存到数据库?

  16. 16

    对has_many关系的Arel关系参考

  17. 17

    Mongoid has_many关系在枚举时返回假数据

  18. 18

    Rails 4:在不保存到数据库的情况下追加到“ has_many”关系

  19. 19

    使用:through为has_many关联添加字段

  20. 20

    多对多(has_many:through)-表单如何添加子项?

  21. 21

    多对多(has_many:through)-表单如何添加子项?

  22. 22

    Rails Active Record,从has_many:through关系中获取相关记录,并通过where子句设置record

  23. 23

    Rails 4 has_many:through关系:在从父模型创建动作时分配默认值以加入模型属性

  24. 24

    核心数据将数据添加到Swift中的关系

  25. 25

    如何使用一对多关系将数据添加到核心数据?

  26. 26

    Ruby on Rails'has_many:through',存储数据

  27. 27

    Ruby on Rails'has_many:through',存储数据

  28. 28

    Laravel多对多关系,是否将更多对象添加到“数据透视”中?

  29. 29

    使用实体框架将数据添加到多对多关系

热门标签

归档