2010-10-14 4 views
0

J'ai écrit un site de rails dans la dernière version de rails, basé sur la connaissance des rails d'il y a quelques années, et j'ai rencontré un horrible problème.Comment obtenir les pages de mes rails pour retourner au format html?

J'ai bêtement décidé d'ignorer le nouveau système de routage RESTful et d'espérer le meilleur.

Donc toutes mes vues sont .erb réelles, pas html.erb

mon fichier itinéraires ressemble à ce

map.connect '/crm/:action/:id', :controller => "contacts", :format => 'html' 

ici est un exemple d'une méthode:

def update_emails 
    Com.update_emails 
    respond_to do |format| 
    format.html {redirect_to(:action => 'list')} 
    end 
end 

quand il redirige vers l'action 'list', j'obtiens un fichier en texte brut que mon navigateur essaie de télécharger, au lieu de la version html de la page que je veux.

Existe-t-il un moyen simple pour moi de dire aux rails d'envoyer uniquement des fichiers au format html?

Merci!

EDIT:

action liste

def list 
    if params[:search] 
    @contacts = Contact.search(params) 
    else 
    @contacts = Contact.find(:all, :order => "updated_at desc") 
    end 
end 

et la vue est un fichier .erb simple (problème est le même quand je fais un fichier .html.erb)

En outre, la même chose se produit lorsque je redirige vers d'autres actions

+0

S'il vous plaît afficher l'une des méthodes dans vos contrôleurs (par exemple, l'index ou modifier) ​​ – BryanH

+1

, sont également vos vues "* .html.erb" ? – BryanH

+0

J'ai modifié le post pour répondre à vos questions – rob

Répondre

0

Vous devez utiliser respond_to.

def update_emails 
    Com.update_emails 
    redirect_to(:action => 'list') 
end 

puis dans l'action 'liste'

def list 
    #some code here 
    respond_to |format| do 
    format.html {render :list} 
    end 
end 
+0

J'ai essayé cela (sauf 'redirect_to', pas 'render'), et obtenir le même problème – rob

+0

Ce n'est pas la même chose.J'ai édité ma réponse.voir si cela fonctionne – adivasile

+0

Fermer! Merci! Vous me mettez sur la droite Couple d'ajustements redirect_to (: action => 'l ist ',: format =>' html ') et respond_to do | format | et format.html {render (: action => 'list')} Et ça marche !!! – rob

Questions connexes