Bonjour,
J’ai un petit problème avec l’update dans mon contrôleur
contacts_controller.rb".
Pour resituer le contexte, je dispose de deux modèles “contact” et
“group” auxquels sont associés deux contrôleurs “contacts_controller.rb”
et “groups_controller.rb”. Un groupe peut avoir plusieurs contacts, un
contact est associé à un seul groupe (cf tutoriel =>
http://www.buzzdenoel.fr/tutoriel-ruby-on-rails.html).
Quand je souhaite mettre à jour le contact 28 du groupe 1, j’obtiens
toujours un message d’erreur :
" ActiveRecord::RecordNotFound in ContactsController#update
Couldn’t find Group without an ID"
http://localhost:3000/groups/1/contacts/28/edit => Vue edit.erb.html
contenant :
Modifier le contact "<%=h @contact.name %>"du groupe "<%=h @group.name %>"
<% form_for(@contact) do |f| %> <% @contact.group_id = @group.id %>
<%= hidden_field :group_id , :group_id, :value => @group.id %>
Nom : <%= f.text_field :name, :size=>'20' %>
Telephone : <%= f.text_field :phone_number, :size=>'10' %>
Adresse : <%= f.text_field :address, :size=>'50' %>
<%= f.submit 'Mettre à jour' %> <% end %><%= link_to 'Retour',group_path(@group.id)+'/contacts' %> | <%= link_to 'Consulter',group_path(@group.id)+contact_path(@contact) %> | <%= link_to 'Supprimer',group_path(@group.id)+contact_path(@contact),:method => :delete,:confirm => 'Etesvous sur de vouloir supprimer cet élément ?' %>
Pourtant, dans request parameters, j’ai bien :
{“_method”=>“put”,
“authenticity_token”=>“5535d229b55227e382c76c6a144fcf42c341a868”,
“group_id”=>{“group_id”=>“1”},
“contact”=>{“name”=>“marcel”,
“phone_number”=>“0577554433”,
“address”=>“rue des rien 34000 Montpellier”},
“commit”=>“Mettre à jour”,
“id”=>“28”}
Voici le contenu de mon controleur “contacts_controller.rb” :
class ContactsController < ApplicationController
before_filter :find_group
def index
@contacts = Contact.find :all, :order => “name ASC”
end
def show
@contact = Contact.find params[:id]
end
def new
@contact = Contact.new
end
def create
@contact = Contact.new params[:contact]
@contact.group = @group
if @contact.save
flash[:notice] = “Le contact a été créé avec succès”
redirect_to groups_contacts_path(@group)
else
render :action => "new"
end
end
def edit
#id designe l’identifiant contact
@contact = Contact.find params[:id]
mon_fichier = File.open(“test.txt”, “w”)
mon_fichier.write @contact.name
mon_fichier.close
end
def update
#je recupere le contact qui a l id = ID
@contact = Contact.find params[:id]
mon_fichier2 = File.open(“testBis.txt”, “w”)
mon_fichier2.write @contact.name
mon_fichier2.close
#mettre a jour tous les attributs
if @contact.update_attributes params[:contact]
flash[:notice] = "Le contact a été modifié avec succès"
redirect_to 'groups_path'
else
render :action => "edit"
end
end
def destroy
@contact = Contact.find params[:id]
@contact.destroy
#bonne adresse /groups/id/contacts (menu
redirect_to group_path(@contact.group_id)+'/contacts'
end
private
def find_group
@group = Group.find params[:group_id]
end
end
J’ai le même problème avec l’insertion ? Je vois pas vraiment d’ou vient
le problème… Je débute donc…