2010-04-13 28 views
2

Je voudrais créer un rendu personnalisé tel que spécifié dans le titre.Comment remplacer un rendu pour créer un "rendu: my_format => argument" personnalisé dans les rails 2.3 (.5)?

Par exemple, j'ai mon contrôleur:

class MyController < ApplicationController 
    def index 
    respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @objs } 
    end 
    end 
end 

, mais je voudrais quelque chose comme ceci:

class MyController < ApplicationController 
    def index 
    respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @objs } 
     format.my_format { render :my_format => @objs } 
    end 
    end 
end 

Est-il possible? Quelles sont les étapes dont j'ai besoin pour le faire fonctionner?

Merci d'avance!

MISE À JOUR

Je veux quelque chose comme dans here. J'ai donc remplacé le @objs par une méthode mais cela ne fonctionnait pas non plus (la méthode n'était pas appelée). Observer: J'inscris le type mime à config/initializers/mime_types.rb.

Répondre

3

De railsapi.com:

« Si vous avez besoin d'utiliser un type MIME qui est pas pris en charge par défaut, vous pouvez enregistrer vos propres gestionnaires dans environment.rb comme suit. »

Mime::Type.register "image/jpg", :jpg 
+0

Supposons que nous avons déjà un type MIME enregistré. En prenant votre réponse comme exemple, nous pourrions vouloir servir une image jpg générée dynamiquement avec cette option de format dans MyController: "format.jpg {render: jpg => @shapes}". C'est possible? Comment? – Rafael