Rails: request.xml? - PullRequest
       15

Rails: request.xml?

1 голос
/ 18 февраля 2010

Я хотел бы проверить, является ли запрос XML или HTML. При HTML страница перенаправляется в форму входа (если пользователь не вошел в систему), а при XML пользователь получает не авторизованный код состояния.

Пример:

class ApplicationController < ActionController::Base
  def require_user
    unless current_user
      IF XML
        RESPOND WITH CODE
      ELSE
        redirect_to :controller => :user_sessions, :action => :new, :format => params[:format]
      END
      return false
    end
  end
end

class ProductsController < ApplicationController
  before_filter :require_user
  ...
end

1 Ответ

3 голосов
/ 18 февраля 2010

Вы должны быть в состоянии использовать метод делегирования формата:

unless (current_user)
  respond_to do |format|
    format.xml do
      # respond with code
    end

    format.html do
      redirect_to :controller => :user_sessions, :action => :new, :format => params[:format]
    end
  end

  return false
end
...