2012-05-05 52 views
1

我一直在試圖弄清楚以下內容,但還沒有能夠提出整潔的解決方案。也許我錯過了一些基本的東西。如何初始化基於其關聯的導軌模型

概述

我有很多對多任務和用戶模式。

一個用戶可以有很多任務,一個任務可以在許多用戶之間共享。

我創建使用以下任務:

user.tasks.create 

任務由USER_ID並使用TASK_ID與任務USER_ID將用戶鏈接鏈接,使用:通過task_table

任務屬於一個用戶,但一旦完成,它就被傳遞給下一個任務的用戶。

問題

它始終是,對於創建任務的用戶,輪到他完成任務的情況。完成後,它會傳遞給下一個用戶。

我目前有:

user1.tasks.create(:current_user => user1.id) 

當用戶完成任務,:CURRENT_USER變化。

我想要實現的是一種只需編寫user1.tasks.create的方法 - 並自動設置current_user,而不必明確地傳入user1.id。有什麼辦法可以做到這一點?也許使用一個構造函數(我已經嘗試了所有這些,但不能得到任何工作)。

謝謝!

+0

以後有什麼邏輯做的,你要選擇的第一個「CURRENT_USER」? – moritz

+0

user.tasks.create之後 - >構建任務時 – Karan

+0

Ah no我的意思是你如何選擇第一個用戶:首先是DB,最早的created_at等等? – moritz

回答

0

你可以嘗試在before_add回調您協會這樣做,像

class User < ActiveRecord::Base 
    has_many :tasks, :through => :task_table, :before_add => Proc.new { |u,t| t.current_user = u } 
end