2010-02-18 1 views
1

요청이 XML 또는 HTML인지 확인하고 싶습니다. HTML이 페이지가 로그인 양식 (사용자가 로그인하지 않은 경우)으로 리디렉션되고 XML이 승인 된 상태 코드가 아닌 경우.레일 : 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() == 마임 경우 :: 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