Причина действия new
заключается в том, чтобы просто предоставить клиенту xml данные по умолчанию (или что-то еще, если хотите).
Директива формата используется всеми маршрутами, и вам не нужно поддерживать формат, если вы этого не хотите.
Вышеприведенный код мог бы выглядеть так:
respond_to do |format|
format.html # renders new.html.erb
format.xml { render :xml => {:message => "XML is not supported"} }
format.json { render :text => @post.to_json }
format.js # renders new.js.erb
end
Кроме того, это не ограничивается действием new
, но доступно во всех ваших действиях. Используемый формат берется либо из URL (если маршрут настроен на его использование), либо из заголовка HTTP-Accept, который отправляет браузер.