Mon formulaire fonctionne lors de la création d'une nouvelle tâche, mais lorsque je soumets le formulaire et qu'il présente des erreurs de validation (et que j'essaie de soumettre à nouveau le formulaire), il semble que la méthode de mise à jour de mon contrôleur soit utilisée (ce qui entraîne le rejet de la requête suivante ActiveRecord::RecordNotFound
car il n'y a pas de jeu d'identifiants).
Mon contrôleur :
class JobsController < ApplicationController
def new
@job = Job.new
end
def edit
@job = Job.find(params[:id])
end
def create
@job = Job.new(params[:job])
if @job.save
redirect_to @job, :notice => 'Job was successfully created.'
else
render :action => "new"
end
end
def update
@job = Job.find(params[:id])
if @job.update_attributes(params[:job])
redirect_to @job, :notice => 'Job was successfully updated.'
else
render :action => "edit"
end
end
end
Mon formulaire :
<%= form_for(@job) do |f| %>
#...
<%= f.submit %>
Sur la page d'erreur de validation, voici le rendu de la balise (alors que cette tâche n'a jamais été insérée dans la base de données et que j'essayais initialement de créer une nouvelle tâche) :
<form accept-charset="UTF-8" action="/jobs/10" class="edit_job" id="edit_job_10" method="post">
Mise à jour - voici mes routes.rb et new.html.erb :
Myapp::Application.routes.draw do
resources :jobs
end
Et ma nouvelle vue a ceci :
<h2>New Job</h2>
<%= render 'form' %>
Edit a le même render 'form'