2009-11-16 3 views
1

Je vais avoir un problème en ce qui concerne des vues en Ruby on Rails.Ruby on Rails Problèmes avec vue (rhml/html.erb)

Fondamentalement, j'avoir un projet régulier qui énumère les détails très bien sur

http://localhost:3000/stores/ qui charge le code trouvé dans les index.html.erb

Maintenant, j'ai échafaudages etc tout en place, mais lorsque je tente de charger

http://localhost:3000/stores/search qui DEVRAIT charger le code de search.rhtml (devrait-il être changé en .html.erb ou cela ne fait pas de différence?), Il va simplement au fichier show.html.erb et afficher ce code à la place (ce qui entraîne une erreur due à les opérations n'étant pas passées, etc.).

Je me demandais ce que je fais mal, suis-je supposé mettre quelque chose dans le fichier routes.rb ?? (Si cela n'a rien à voir avec la question?)

ActionController::Routing::Routes.draw do |map| 
    map.resources :stores 
    map.resources :stores 

    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 

Merci beaucoup d'avance pour toute aide que ceci est mon premier Ruby sur le projet Rails

Répondre

2

Si vous souhaitez ajouter une action de recherche que vous voudriez définir vos itinéraires fichier comme ceci:

ActionController::Routing::Routes.draw do |map| 
    map.resources :stores, :collection => { :search => :get } 

    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 

Je collerait de nommer le fichier search.html.erb bien search.rhtml fonctionnera aussi. Ceci est un good guide for routing dans les rails et here's the section qui s'applique spécifiquement à cette réponse.

+0

Merci cela a fonctionné tout simplement génial! – Erika

0

Essayer de répondre à chaque question:

  1. Vous avez un map.resources :stores double, on est assez.

  2. Oui, vous avez raison http://localhost:3000/stores/search va charger search.html.erb (mieux vaut le nommer de cette façon pour suivre coventions) (Je ne vois pas le code de votre contrôleur mais comme vous semblez en train d'apprendre les rails I supposons que vous n'avez pas modifié l'action du contrôleur avec respond_to)

  3. Il ne devrait pas aller à la vue show.html.erb. Pouvez-vous nous montrer votre StoresController?