Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails连接表记录创建_Ruby On Rails_Database_Jointable - Fatal编程技术网

Ruby on rails Rails连接表记录创建

Ruby on rails Rails连接表记录创建,ruby-on-rails,database,jointable,Ruby On Rails,Database,Jointable,如果我有一个名为“:库存商品购物清单”的HABTM联接表,我如何在此表中创建和调用记录?我没有联接模型。两个连接的模型是:库存物品和:购物清单。我希望能够让用户将:库存物品添加到他们的:购物清单。提前谢谢 编辑 以下是相关模型和我的目标: class InventoryItem < ActiveRecord::Base belongs_to :item, :foreign_key => :item_id belongs_to :vendor has_ma

如果我有一个名为“
:库存商品购物清单”的HABTM联接表,我如何在此表中创建和调用记录?我没有联接模型。两个连接的模型是
:库存物品
:购物清单
。我希望能够让用户将
:库存物品
添加到他们的
:购物清单
。提前谢谢

编辑

以下是相关模型和我的目标:

class InventoryItem < ActiveRecord::Base

    belongs_to  :item, :foreign_key => :item_id
    belongs_to  :vendor
    has_many    :list_items
end

class ListItem < ActiveRecord::Base
    belongs_to  :inventory_item, :foreign_key => :item_id
    belongs_to  :shopping_list
end

class ShoppingList < ActiveRecord::Base
    has_many :list_items
    belongs_to  :user, :foreign_key => :user_id
end
class InventoryItem:item\u id
属于:供应商
有很多:列出项目
结束
类ListItem:项目\u id
属于:购物清单
结束
类ShoppingList:用户\u id
结束
我正试图让一个
:用户
:inventory\u items
添加到
:shopping\u list
中,它们将成为
:list\u items
<代码>列表项
:inventory\u items
的属性几乎相同,因此我很可能只是通过关联来引用这些属性,而不是通过复制
:列表项
表中的属性。对此有何想法或建议?我对RoR还不熟悉,所以我非常感谢您对本计划任何部分的反馈。谢谢

如何在此表中创建和调用记录

您基本上不需要使用HABTM关联类型。如果希望在联接表上存储的状态比使用标准的
has\u many
(或者
has\u many:to
)所需的更多,则可以操作基础联接模型


出于这个原因,我从来都不是HABTM的粉丝,事实上,我有一些大型Rails应用正在生产中,我自己也从未使用过HABTM。

啊,我明白了。在研究这一点时,我开始看到HABTM的一些局限性,你刚刚证实了我的怀疑。如果我使用联接模型(我们称之为
:list\u item
),则:inventory\u item和:list\u item将具有几乎相同的属性。为了实现我的目标,这是浪费还是必要的重复?谢谢@设定路线我不太明白你的目标是什么。转到我的个人资料并抓取我的电子邮件,向我发送一封电子邮件,其中包含你的库存物品和购物清单定义以及你试图通过清单物品实现的目标。我无法从你的个人资料中找到你的电子邮件地址,因此我继续在编辑中发布了相关模型和我的最终目标。谢谢,科迪,看来你走对了。例如,您可以在
中添加
ListItem#created_,以了解用户何时将项目添加到他们的购物列表中。看起来你正好有你需要的(?)