2011-04-18 34 views
0

我有一個用戶表(id,username,...),並且我有一個任務表,這意味着任務信息:任務名稱,創建者的id和任務解析器的ID。has_many和belongs_to,如何打印創建者的名字

這是我的質數據庫邏輯:

class User < ActiveRecord::Base 

    has_many :tasks, :foreign_key=>"creator_id" 
    has_many :tasks, :foreign_key=>"solver_id" 
end 

class Task < ActiveRecord::Base 
    belongs_to :user 
end 

這是正確的?在任務列表中,我想打印創建者的名字。我怎樣才能做到這一點?

回答

1

在任務模型,你想:

belongs_to :creator, :foreign_key => "creator_id", :class_name => "User" 
belongs_to :solver, :foreign_key => "solver_id", :class_name => "User" 

,並在您的用戶模式:

has_many :created_tasks, :foreign_key=>"creator_id", :class_name => "Task" 
    has_many :solved_tasks, :foreign_key=>"solver_id", :class_name => "Task" 

所以現在你可以這樣做:

@user.created_tasks 
@user.solved_tasks 

@task.creator@task.solver