2010-05-26 11 views
1

J'ai créé une nouvelle action appelée "demandée". ask.haml est dans les vues/questions comme il se doit. J'ai aussi ajoutéComment configurer correctement les routes lors de la création d'une nouvelle vue dans Ruby on Rails?

def asked 
    respond_to do |format| 
     format.html 
     format.xml { render :xml => @questions } 
    end 
    end 

au contrôleur Questions pour cette action.

Mon problème est que quand je suis arrivé à l'url http://localhost:3000/questions/asked, je reçois cette erreur:

ActiveRecord::RecordNotFound in QuestionsController#show 

Couldn't find Question with ID=asked 

Alors, je googlé cela et trouvé que je devais changer les choses que je sens de l'itinéraire. J'ai essayé: map.connect ':controller/asked', :action => 'asked' et map.resources :questions, :collection => {:asked => :get}, mais en vain.

De toute évidence, je ne comprends pas très bien comment la cartographie Rails fonctionne, mais si quelqu'un me faisait savoir ce qui se passait, j'apprécierais vraiment!

Répondre

1

Le routage des routages fonctionne en sélectionnant le premier chemin qui correspond à l'URL demandée. De votre description il semble que vous mettez vos déclarations map.connect au fond de votre routes.rb. Vous devez le placer avant map.resources :questions, sinon l'URL /questions/asked est associée à map.resources comme action show.

+0

Merci beaucoup! – user5243421