Open Pjmaciel opened 4 months 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