2013-08-16 103 views
0

如果我有一个名为:inventory_items_shopping_lists的HABTM连接表,我该如何在此表中创建和调用记录?我没有加入模型。两款加盟型号为:inventory_items:shopping_lists。我希望能够让用户将:inventory_items添加到:shopping_lists。提前致谢!Rails连接表记录创建

编辑

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

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 

我试图有一个:user添加:inventory_items:shopping_list,他们将成为:list_itemslist_items具有几乎相同的属性:inventory_items,所以我可能只是通过关联引用这些属性,而不是通过复制:list_items表中的属性。对此有何想法或建议?我对RoR很陌生,所以我很欣赏这个计划的任何部分的任何反馈。谢谢!

+1

好像你在正确的轨道上。例如,您可以添加'ListItem#created_at'来了解用户何时将商品添加到购物清单中。它看起来像你有什么你需要(?) –

回答

1

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

你基本上没有使用HABTM关联类型。如果要在连接表上存储更多状态,则需要使用标准has_many(也可能是has_many :through),以便可以操作基础连接模型。

因为这个原因,我从来不是HABTM的粉丝,实际上我有少量的大型Rails应用程序在生产,我从来没有使用过HABTM。

+0

啊,我明白了。在研究这个时,我开始看到HABTM的某些局限性,你刚刚证实了我的怀疑。如果我使用连接模型(我们称之为':list_item'),inventory_item和:list_item将具有几乎相同的属性。这是浪费,还是只是必要的重复,以实现我的目标?谢谢! – settheline

+0

@settheline我并不真正关注你的目标是什么。转到我的个人资料并抓住我的电子邮件,给我发送一封包含您的inventory_items和shopping_lists定义的电子邮件,以及您想用list_item实现的目标 –

+0

我无法从您的个人资料中找到您的电子邮件地址,因此我继续发布相关内容模型和编辑中的最终目标。谢谢科迪。 – settheline

相关问题