1

我有用户、项目和任务。

Users have many tasks
Projects have tasks

Tasks belongs to users
Tasks belong to projects

任务模型的字段之一是 Project_id。

我需要在用户创建新任务时创建一个新项目,并且创建的任务获取在其 Project_id 字段中创建的新项目的 id,因此它会自动与之关联。

我的问题是,在创建新任务时,尚未创建项目,所以 project_id 为空,有人可以请至少指出我正确的方向吗?

4

1 回答 1

2

before_create在回调中如何做呢?

class Task

  before_create :create_project

  def create_project
    new_project = Project.new(...)

    unless new_project.save
      self.errors.add(:base, "Couldn't create project.")
      return false
    end

    self.project_id = new_project.id
  end

end

return false位对于防止Task对象以无效保存Project并向其添加可显示在视图中的错误是必要的。

于 2012-04-17T23:42:01.223 回答