has_many和belongs_to,如何打印创建者的名字

时间:2011-04-18 19:52:59

标签: ruby-on-rails ruby-on-rails-3

我有一个用户表(id,username,...),我有一个任务表,这意味着任务信息:任务名称,创建者的id和任务解算器的id。

这是我的dbase逻辑:

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 个答案:

答案 0 :(得分: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