2012-07-26 43 views
0

我有3個模型/表:用戶,任務和TaskInstance。任務表就像任務的主要列表,不與任何特定的用戶耦合,而TaskInstance表包含指示用戶完成特定任務的記錄。換句話說,一個TaskInstance有一個用戶標識,一個任務標識和一個狀態布爾值。用戶有很多TaskInstances。用戶不共享TaskInstances,它們都有自己的集合。創建它時更新模型實例的字段? (Rails)

當用戶首次註冊網站上的帳戶時,我想要爲User.task_instances字段填充主列表中存在的每個任務的新TaskInstance。

從我讀過的內容中,我認爲我必須使用before_create來做到這一點,因爲它應該在用戶首次保存之前更新用戶。到目前爲止,我有:

class User < ActiveRecord::Base 

    has_many :task_instances  

    before_create :populate_task_instances 

    private 

     def populate_task_instances 
      #something here 
     end 
end 

到目前爲止,我不確定在populate_task_instances方法發生的事情。我如何遍歷任務表中的每條記錄併爲每個記錄創建一個TaskInstance,然後確保將TaskInstances的集合保存到用戶的task_instances字段?

我明白這是非常微不足道的,但這是我第一次進軍Rails。

回答

1

這裏是一個解決方案,我認爲

def populate_task_instances 
    self.task_instances = Task.all.map {|task| TaskInstance.new task_id: task.id} 
end 
相關問題