2010-10-20 6 views
4

Mon problème est similaire à celui de cette question, mais le contraire. How do I specify ":layout => false" in Rails' respond_with?Dans Rails 3: Comment restituer la mise en page dans respond_with en utilisant un format personnalisé?

Le contrôleur est en quelque sorte un convertisseur de fichiers. Il répond à de nombreux formats. Un format est supposé rendre une mise en page html montrant les métadonnées. Ce format nécessite la mise en page, contrairement à la plupart des autres formats. Le problème est que je ne peux pas convaincre Rails de le rendre. Je pensais que ": layout => true" fonctionnerait mais apparemment pas.

Comme vous pouvez le voir, j'ai enlevé tout le reste dans le contrôleur avant de le coller ici. Le format "fil" est ajouté aux types mime en format texte/html dans config/initializers/mime_types.rb. J'ai mon fichier de vue en place et il rend, mais sans aucune mise en page autour de lui.

J'apprécierais n'importe quel conseil. Je n'ai trouvé nulle part depuis un moment et tout ce que je trouve en ligne suggère que mon code devrait fonctionner.

Merci d'avance.

+0

Avez-vous essayé de spécifier le chemin d'accès à votre mise en page? ': layout => '/ layouts/mylayout'' – Yannis

+0

J'ai essayé" application "et" inexistant ". Lorsque je le mets à une disposition inexistante, je reçois une erreur de mise en page manquante. Quand je le mets à un existant je reçois le même résultat vide. –

Répondre

2

J'ai trouvé que la mise en page se produisait si je spécifiais le chemin exact et le nom de fichier du fichier de mise en page. Dans mon cas:

render :layout => '/layouts/application.html.haml'