2011-10-12 80 views
0

我有一個關於我在Rails 3.1中開發的簡單應用程序的問題,但我不確定如何定義關聯,並且正在尋找建議以實現以下。Rails 3.1活動記錄關聯可能與嵌套表單

我有磁帶,每個磁帶包含一個條形碼。

我有箱子,每個箱子都有一個名字

什麼,我需要跟蹤的兩個關聯的動作,每天多達24個磁帶將被放入一個盒子裏,所以我需要創建的一種方式一個新的表單上的現有盒子和現有磁帶的關聯,並理想地跟蹤一些額外的信息。

磁帶週期爲5周,所以5周後磁帶將(可能)與新盒子相關聯。

我不知道如何關聯模型,任何幫助或輸入,將不勝感激

回答

0

你需要跟蹤這箱它曾經屬於哪一種?如果不是,這是一個簡單的belongs_to/has_many關聯。

class Tape 
    belongs_to :box 
end 
class Box 
    has_many :tapes 
end 

如果您需要跟蹤過去的盒子,那麼你就需要一個連接模型:

class WhateverYouWant 
    belongs_to :box 
    belongs_to :tape 
end 

,改變盒/磁帶協會用「:通過」

+0

感謝這是它的底線,我會創建什麼樣的模型來做關聯,你知道任何關於在「WhateverYouWant」模型中創建NEW記錄的教程,但是使用其他兩個模型的現有記錄嗎?我基本上設想了一個帶有Box名稱的文本輸入的表單,然後是條形碼的24個文本框,但是我不確定這是否需要控制器中的一些額外工作,或者如果accept_nested_attributes會爲我處理此問題? – haXs

+0

是否有可能在連接模型上創建一個可從磁帶和盒子模型中抽取的表單?我已經添加了acceps_nested_attributes_for:磁帶,但我不確定如何獲取已存在磁帶的ID號 – haXs

+0

嗨,對不起 - 我已經離開了。連接模型是相當常見的Rails模式。你可以谷歌,並找到教程的堆。沒有一個好的想法,但如果你有「網頁開發與鐵軌」的書,你會有它的東西在裏面。否則谷歌給了我:http://www.tutorialspoint.com/ruby-on-rails/rails-models.htm (向下滾動)。 –