Какие форматы по умолчанию response_to для Ruby On Rails и как добавить новые? - PullRequest
2 голосов
/ 23 августа 2009

Итак, вот что у меня есть:

  def index
    @profiles = Profile.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @profiles }
      format.json  { render :json => @profiles }
    end
  end

Я хотел бы добавить rss, atom и, возможно, некоторые пользовательские, такие как тот, который возвращает изображение для профиля.

Ответы [ 2 ]

6 голосов
/ 23 августа 2009

Вы можете зарегистрировать новые, как это (поместите это в ваш config / environment.rb, один из файлов config / environment / *. Rb или в файл в config / initializer):

Mime::Type.register 'application/pdf', :pdf
Mime::Type.register 'application/vnd.ms-excel', :xls

Что касается значений по умолчанию:

>> Mime::SET.map(&:to_sym)
=> [:all, :text, :html, :js, :css, :ics, :csv, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :xls]
0 голосов
/ 23 августа 2009

Для этого вы можете использовать встроенный в рельсы resource_feeder:

script/plugin install simply_helpful
script/plugin install resource_feeder

В профиле контроллера:

def index
  @profiles = Profile.all

  options = { :feed => { :title => "All Profiles" },
                    :item => { :title => :name } }

  respond_to do |format|
    format.html
    format.xml { render :xml => @profiles
    format.json { render :json => @profiles
    format.rss { render_rss_feed_for @profiles, options }
    format.atom { render_atom_feed_for @profiles, options }
  end

конец

...