2013-08-16 101 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

相關問題