desenvolvendo-me / devify

0 stars 0 forks source link

Permitir calcular a pontuação dos projetos finalizados #20

Open Pjmaciel opened 4 months ago

marcodotcastro commented 4 months ago
makjesus commented 1 month ago

Foi criada uma nova migration :

rails generate migration AddScoreToProjects score:integer

rodada a migração:

rails db:migrate

lógica de cálculo no modelo

class Project < ApplicationRecord def calculate_score self.score = (completed_at.present? ? 100 : 0) # Exemplo simplista save end end

Controlador para atualizar a pontuação

class ProjectsController < ApplicationController def update @project = Project.find(params[:id])

if @project.update(project_params)
  @project.calculate_score if @project.status == 'finalizado' # Condição para calcular a pontuação
  redirect_to @project, notice: 'Projeto atualizado com sucesso.'
else
  render :edit
end

end

private

def project_params params.require(:project).permit(:title, :description, :status) end end

Testes para garantir o comportamento

it "calcula a pontuação quando o projeto é finalizado" do project = Project.create!(title: "Test Project", status: "em andamento") project.update(status: "finalizado") expect(project.score).to eq(100) end