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