Rails: В ApplicationController они по умолчанию отображают XML? - PullRequest
1 голос
/ 04 марта 2009

Я хочу иметь возможность отображать как HTML, так и XML. По умолчанию HTML отображается, если мы не добавим формат, например /myresource.xml. Я хочу сделать XML по умолчанию и отвечать только в формате .html:

GET / myresource / возвращает html

GET /myresource.xml возвращает xml

Хотелось бы:

GET / myresource / возвращает xml

GET /myresource.html возвращает html

Есть ли простой способ добиться этого?

С уважением,

Chris

Ответы [ 3 ]

1 голос
/ 05 марта 2009

Поскольку этот нестандарт в Rails, лучше всего решить его через mod_rewrite в Apache. Карта /whatever в /whatever.xml и карта /whatever.html в /whatever.

1 голос
/ 15 мая 2009

Если вы хотите управлять этим на уровне контроллера, вы можете сделать следующее (в ApplicationController или MyResourceController)

class MyResourceController (or ApplicationController) < ApplicationController
  before_filter :change_format

  ...

  protected
  def change_format
    params[:format] = 'xml' if params[:format].blank?
  end 
end

0 голосов
/ 04 марта 2009

попробуйте добавить :format => 'xml' к определению вашего ресурса, хотя я не уверен, что такие вещи должны работать так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...