使用另一个表中的对象为ActiveRecord数据库播种

用户名

我是Rails的新手,正在制作我的第一个应用程序,并且有一个(另一个)问题:

我向我的抽认卡应用程序添加了“卡片组”功能,但是在建模时遇到了麻烦,无法生成由卡片表中的卡片对象填充的“卡片组”。

这是我的关联:

User has_many :decks

Deck belongs_to :user
Deck has_many :cards

Card belongs_to :deck




class Card < ActiveRecord::Base
  belongs_to :deck

  validates :front, presence: true
  validates :back, presence: true
  validates :deck_id, presence: true

end

这是我的套牌迁移/表格:

class Decks < ActiveRecord::Migration
  def change
    create_table :decks do |t|
      t.string :name, null: false
      t.string :card
      t.integer :user_id, null: false
    end
  end
end

我的问题是,我希望卡组表中的“卡片”列由卡片对象组成,以便我可以访问/操纵它们的方法,但是我不确定如何做到这一点。我尝试用t.string的“:card”填充表,希望它能起作用,但只会空白。我想知道这是否可能或建议还是有更好的方法?

如果有人可以在这方面为我提供资源/建议,请谢谢。我检查了docs / SO,似乎找不到任何东西。

撕裂

您所描述的内容可以轻松实现。

前提是UserDeckCardActiveRecord的模式,您可以通过设置外键连接表将两者联系起来。外键是integer包含id关联模型的的(其表的主键)

Rails约定是使用belongs_tohas_many声明“一对多”关联(docs)。这些方法会将所需的方法添加到模型对象中,以表示关联并与之交互。

在数据库架构方面,您需要在声明belongs_to关联的模型表上设置外键

因此,如果您具有以下模型:

class User < ActiveRecord::Base
  has_many :decks
end

class Deck < ActiveRecord::Base
  belongs_to :user
  has_many :cards
end

class Card < ActiveRecord::Base
  belongs_to :deck
end

您将需要这些迁移:

class CreateDecks < ActiveRecord::Migration
  def change
    create_table :decks do |t|
      # your other columns...
      t.integer :user_id
    end
  end
end

class CreateCards < ActiveRecord::Migration
  def change
    create_table :cards do |t|
      # your other columns...
      t.integer :deck_id
    end
  end
end

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用另一个表中的值更新数据库表

来自分类Dev

SQL更新表使用另一个数据库中的表

来自分类Dev

如何使用另一个数据库表中的值更新表

来自分类Dev

如何使用Python从sqlite中的另一个数据库导入表?

来自分类Dev

使用C#将访问数据库中的表复制到另一个表中

来自分类Dev

从tmp数据库中的表插入并更新到另一个数据库中的表

来自分类Dev

从tmp数据库中的表插入并更新到另一个数据库中的表

来自分类Dev

将部分数据库表合并到另一个数据库表中?

来自分类Dev

Laravel:从另一个数据库表中获取数据

来自分类Dev

使用 pgadmin 将数据行从一个表复制到同一数据库中的另一个表

来自分类Dev

将数据从一个表复制到另一个数据库中的另一个表

来自分类Dev

使用空间功能时,使用另一个SQL Server数据库中的表更新表列

来自分类Dev

如何从Laravel中的另一个数据库表中检索值?

来自分类Dev

Django无法从另一个表中的数据库中获取值

来自分类Dev

将数据库中一个表的值插入到另一个数据库中的另一表

来自分类Dev

将一个数据库表中的行插入另一个数据库中的两个不同表中

来自分类Dev

如何使用postgres dblink对另一个数据库中的表进行更新?

来自分类Dev

Laravel 5.2:数据库记录获取并检查另一个表中的ID

来自分类Dev

无法在android studio的sqlite数据库中添加另一个表

来自分类Dev

从 SQL Server 中的另一个数据库表插入选择

来自分类Dev

如何从当前数据库CodeIgniter中的另一个数据库创建新表

来自分类Dev

使用SQL将Oracle数据库表的副本创建到另一个Oracle数据库

来自分类Dev

如何基于一个表与另一个数据库中的同一表更新数据库中的表记录?

来自分类Dev

使用 sqlalchemy 将一个对象从一个数据库保存到另一个数据库

来自分类Dev

如何检索jComboBox中绑定在数据库表中的对象并将其存储到另一个表中

来自分类Dev

使用 ID 从另一个活动中的 SQLite 数据库读取数据

来自分类Dev

从不同数据库中的 2 个表中获取值到另一个表中

来自分类Dev

从一个数据库表插入到 ANDROID 中的另一个数据库表

来自分类Dev

如何生成一个模型,其表存储在另一个数据库中?

Related 相关文章

  1. 1

    如何使用另一个表中的值更新数据库表

  2. 2

    SQL更新表使用另一个数据库中的表

  3. 3

    如何使用另一个数据库表中的值更新表

  4. 4

    如何使用Python从sqlite中的另一个数据库导入表?

  5. 5

    使用C#将访问数据库中的表复制到另一个表中

  6. 6

    从tmp数据库中的表插入并更新到另一个数据库中的表

  7. 7

    从tmp数据库中的表插入并更新到另一个数据库中的表

  8. 8

    将部分数据库表合并到另一个数据库表中?

  9. 9

    Laravel:从另一个数据库表中获取数据

  10. 10

    使用 pgadmin 将数据行从一个表复制到同一数据库中的另一个表

  11. 11

    将数据从一个表复制到另一个数据库中的另一个表

  12. 12

    使用空间功能时,使用另一个SQL Server数据库中的表更新表列

  13. 13

    如何从Laravel中的另一个数据库表中检索值?

  14. 14

    Django无法从另一个表中的数据库中获取值

  15. 15

    将数据库中一个表的值插入到另一个数据库中的另一表

  16. 16

    将一个数据库表中的行插入另一个数据库中的两个不同表中

  17. 17

    如何使用postgres dblink对另一个数据库中的表进行更新?

  18. 18

    Laravel 5.2:数据库记录获取并检查另一个表中的ID

  19. 19

    无法在android studio的sqlite数据库中添加另一个表

  20. 20

    从 SQL Server 中的另一个数据库表插入选择

  21. 21

    如何从当前数据库CodeIgniter中的另一个数据库创建新表

  22. 22

    使用SQL将Oracle数据库表的副本创建到另一个Oracle数据库

  23. 23

    如何基于一个表与另一个数据库中的同一表更新数据库中的表记录?

  24. 24

    使用 sqlalchemy 将一个对象从一个数据库保存到另一个数据库

  25. 25

    如何检索jComboBox中绑定在数据库表中的对象并将其存储到另一个表中

  26. 26

    使用 ID 从另一个活动中的 SQLite 数据库读取数据

  27. 27

    从不同数据库中的 2 个表中获取值到另一个表中

  28. 28

    从一个数据库表插入到 ANDROID 中的另一个数据库表

  29. 29

    如何生成一个模型,其表存储在另一个数据库中?

热门标签

归档