I have the following nested path:
resources :companies do
resources :weeks do
resources :payrolls
end
end
My problem arises when I realize a new_company_week
since it ignores my answer.
In the controller I have the following:
def new
@week = Week.new
end
def create
@week = Week.where('status_id = 1 and company_id = ?',params[:company_id]).update_all(status_id:4)
@week = Week.new(week_params)
respond_to do |format|
if @week.save
if(params[:company_id] == 4)
@employees = EmployeeCw.all.where(status_id: 1)
@employees.find_each do |employee|
@payroll = Payroll.new({:employee_id=>employee.Employee.id, :week_id=>@week.id, :department_id=>employee.department_id,
:dias_trabajados=>0,:dias_vacaciones=>0,:faltas=>0,:total_percepciones=>0,:total_retenciones=>0,
:total_sueldo_bruto=>0,:total_sueldo_neto=>0,:sueldo_fiscal=>0,:pago_impuesto=>0,
:pago_eps=>0,:tipo_pago_fiscal=>employee.tipo_pago_fiscal,:tipo_pago_eps=>employee.tipo_pago_eps,
:created_by=> current_user,:updated_by=>current_user, :employee_cw=> employee.id})
@payroll.save
@employee_wd = EmployeeWd.new({:created_at=>current_user,:created_by=>current_user, :payroll_id=>@payroll.id,
:construction_work=>employee.construction_work_id,:jueves=>0,:viernes=>0,:sabado=>0,:domingo=>0,
:lunes=>0,:martes=>0,:miercoles=>0})
@employee_wd.save
flash[:notice] = "Week successfully created CHS"
format.html { redirect_to company_weeks_path(params[:company_id])}
end
else
@employees = Employee.all.where(status_id: 1)
@employees.find_each do |employee|
@payroll = Payroll.new({:employee_id=>employee.id, :week_id=>@week.id, :department_id=>employee.department_id,
:dias_trabajados=>0,:dias_vacaciones=>0,:faltas=>0,:total_percepciones=>0,:total_retenciones=>0,
:total_sueldo_bruto=>0,:total_sueldo_neto=>0,:sueldo_fiscal=>0,:pago_impuesto=>0,
:pago_eps=>0,:tipo_pago_fiscal=>employee.tipo_pago_fiscal,:tipo_pago_eps=>employee.tipo_pago_eps,
:created_by=>current_user,:updated_by=>current_user})
@payroll.save
@employee_wd = EmployeeWd.new({:created_at=>'Daniel',:created_by=>'daniel', :payroll_id=>@payroll.id,
:jueves=>0,:viernes=>0,:sabado=>0,:domingo=>0,:lunes=>0,:martes=>0,:miercoles=>0})
@employee_wd.save
flash[:notice] = "Week successfully created"
format.html { redirect_to company_weeks_path(params[:company_id])}
end
end
else
format.html { render :new }
format.json { render json: @week.errors, status: :unprocessable_entity}
end
end
end
I really do not know if it is the best way to store information, however I have the following line:
format.html { redirect_to company_weeks_path(params[:company_id]) }
Which ignores me completely and when it does the post it sends me to /weeks
.
In my routes I have the following:
company_weeks GET /companies/:company_id/weeks(.:format) weeks#index
POST /companies/:company_id/weeks(.:format) weeks#create
new_company_week GET /companies/:company_id/weeks/new(.:format) weeks#new
edit_company_week GET /companies/:company_id/weeks/:id/edit(.:format) weeks#edit
company_week GET /companies/:company_id/weeks/:id(.:format) weeks#show
PATCH /companies/:company_id/weeks/:id(.:format) weeks#update
PUT /companies/:company_id/weeks/:id(.:format) weeks#update
DELETE /companies/:company_id/weeks/:id(.:format) weeks#destroy
I add an image with the error that shows me:
My week_params method is this:
def week_params
params.require(:week).permit(:fecha_inicial, :fecha_final, :fecha_pago, :tipo_nomina, :created_by, :updated_by, :company_id)
end