Ruby on rails 在rails中,我如何计算父前端内子表(模型)的记录数

Ruby on rails 在rails中,我如何计算父前端内子表(模型)的记录数,ruby-on-rails,api,Ruby On Rails,Api,我有两个模型项目和任务,其中项目有许多任务 我想用已完成任务的数量更新项目前端中的“进度” 最好的方法是什么 我应该在项目表中创建“进度字段”,还是用另一种方式更好 我试着这么做 //Project model def completed_tasks(project) self.tasks.where({completed: true}).count end 以下是我将如何着手的: 我将添加一个名为completed的布尔型字段到tasks表中,默认值为false 如果任务完成,该字段将

我有两个模型项目和任务,其中项目有许多任务 我想用已完成任务的数量更新项目前端中的“进度”

最好的方法是什么 我应该在项目表中创建“进度字段”,还是用另一种方式更好

我试着这么做

//Project model
def completed_tasks(project)
   self.tasks.where({completed: true}).count
end

以下是我将如何着手的:

  • 我将添加一个名为
    completed
    的布尔型字段到tasks表中,默认值为
    false
  • 如果任务完成,该字段将更新为
    true
  • 我将修改您的
    已完成的\u任务
    方法:
  • 请注意,我删除了
    self
    。您不必显式地调用它,因为您已经在模型中了

  • 我将修改您的
    isDone
    方法,您在Ruby中不使用camelCase命名,惯例是使用snake\u case

  • 这里我假设您从前端发送项目的
    id
    ,这就是我在参数中作为params[:id]访问的内容,我还假设您希望将响应作为JSON发送回前端进行处理/显示。

    您认为这是什么:
    self.tasks.where({:project\u id=>project.id}).count
    正在做什么?它应该是self.tasks.where({completed:true})。count您可能需要花一些时间来理解Rails的基本原理。比如了解ActiveRecord模型以及Rails和React如何相互作用。您可以从这里开始:因此对于routes.rb,我执行以下操作:``get”/projects/:id/tasksdone``到:“projects#任务数(u tasks)```然后我应该获取这个:
    /projects/${id}/tasksdone
     //Project controller 
    def isDone
      @isDone_tasks = Project.completed_tasks(:id)
    
    end
    
    // Project model
    def completed_tasks
      tasks.where(completed: true).count
    end
    
     // Project controller 
    def number_of_tasks_done
      project = Project.find(params[:id])
      render json: project.completed_tasks, status: 200
    end