2010-02-18 3 views
1

Я хотел бы проверить, является ли запрос XML od HTML. Когда HTML перенаправляется на страницу входа в систему (если пользователь не вошел в систему), а при XML пользователь получает недопустимый статусный код.Rails: request.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 
+0

Btw я пытаюсь с если request.format() == Mime :: XML render: nothing => true,: status => 500 – xpepermint

ответ

3

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

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