Problème d'exécution de l'action sur l ink_to

Bonjour,

Dans le footer (layouts/_footer) de mon application, j’ai mon menu.
J’ai ajouté un lien <%= link_to “- activité”,
{:controller=>“saisies”, :action=>“new_saisie_activite”} %> qui doit
appeler dans le controleur cette méthode :
def new_saisie_activite
@saisie = Saisie.new
@activites = Activite.find(:all, :conditions =>
“actif=true”, :order=>“nom ASC”).map {|p| [p.nom, p.id]}

respond_to do |format|
  format.html # new.html.erb
  #format.xml  { render :xml => @saisie }
end

end

Dans le fichier router.rb, je n’ai défini que le minimum :
ActionController::Routing::Routes.draw do |map|
map.resources :saisies
map.resources :fiches

map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
map.root :controller => “home”
end

Lorsque je clique sur le lien, il essaye de charger la page show et
j’obtiens cette erreur :
ActiveRecord::RecordNotFound in SaisiesController#show
Couldn’t find Saisie with ID=new_saisie_activite

Avez-vous une idée de l’erreur que j’ai commise?

Merci d’avance.

Il faudrait que tu explique à la ressource “saisies” qu’elle doit
accepter
la méthode “new_saisie_activite” comme méthode de collection, sinon elle
map
sur la route par défaut qui est GET /saisies/:id => show

Donc :
map.resources :saisies, :collection => [:new_saisie_activite]

Et aussi si tu utilise des resources (ce qui est bien) il vaudrait mieux
supprimer les routes par défaut (ce qui est beaucoup moins bien) donc
supprimer ces deux lignes :
map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’

Michel B.

2009/12/2 pestak [email protected]

Merci Michel !!!
J’ai fait comme tu as dit, j’ai supprimé les routes par défaut.

On 2 déc, 11:21, Michel B. [email protected]