我有一個用戶模型和一個任務模型。我如何在一個對象中涉及兩次對象?
任務具有創建者,用戶類型和用戶類型的受理人。
我已經完成了AddUserIdtoTasks的遷移以獲得創建者關係的工作,但現在我需要再次做同樣的事情來添加受讓人,但我已經在使用關鍵字'user'。我應該如何去建立一個適當的關係。
一項任務總是隻有一個受讓人。
我正在使用用戶模型的設計。
我有一個用戶模型和一個任務模型。我如何在一個對象中涉及兩次對象?
任務具有創建者,用戶類型和用戶類型的受理人。
我已經完成了AddUserIdtoTasks的遷移以獲得創建者關係的工作,但現在我需要再次做同樣的事情來添加受讓人,但我已經在使用關鍵字'user'。我應該如何去建立一個適當的關係。
一項任務總是隻有一個受讓人。
我正在使用用戶模型的設計。
has_one :creator, :class_name => "User"
has_one :asignee, :class_name => "User"
或者belongs_to
,這取決於你的字段如何設置。 has_one
和belongs_to
都採用可選的:class_name
參數來處理像您這樣的情況。
在您的任務模型創建領域assignee_id
然後在
class Task < AR::Base
belongs_to :assignee, :class_name => 'User'
end
使用它的關係是在關係
class User < AR::Base
has_many: :assigned_tasks, :class_name => 'Task', :foreign_key => :assignee_id
end
對不起對方,應該是:class_name
。更新的用戶類別也帶有:foreign_key
參數,沒有它user.assigned_tasks
將使用:user_id
參數(has_many的默認值,即「#{class_name} _id」)加入記錄。
我邀請您閱讀我發佈的鏈接,它比我說明了所有這些事情。
來源:http://guides.rubyonrails.org/association_basics.html#detailed-association-reference
那麼你可以調用creator_id或asignee_id? – Btuman