2010-04-13 2 views
2

Я хотел бы создать пользовательский рендеринг, как указано в заголовке.Как переопределить рендер для создания настраиваемого аргумента «render: my_format =>» в rails 2.3 (.5)?

Например, у меня есть контроллер:

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

, но я хотел бы что-то вроде этого:

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 

возможно ли это? Каковы шаги, которые я должен сделать, чтобы они работали?

Заранее благодарен!

UPDATE

Я хочу что-то вроде в here. Поэтому я заменил @objs на метод, но он тоже не работал (метод не вызывался).

Обс: Я регистрирую тип mime в config/initializers/mime_types.rb.

ответ

3

От railsapi.com:

«Если вам необходимо использовать тип MIME, который не поддерживается по умолчанию, вы можете зарегистрировать свои собственные обработчики в environment.rb следующим образом.»

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

Предположим, что у нас уже есть тип мим зарегистрирован. Принимая ваш ответ в качестве примера, мы могли бы использовать динамически генерируемое jpg-изображение с этим параметром формата в MyController: «format.jpg {render: jpg => @shapes}». Является ли это возможным? Как? – Rafael