2011-09-05 3 views
1

나는 다음과 같은 컨트롤러의 액션이 있습니다레일에서 아약스 요청을 대신 JS의 HTML 렌더링

def create 
    @board = Board.new(params[:board]) 
     respond_to do |format| 
     if @board.save 
      set_board_session @board 
      set_new_board 
      format.js { render :action => "show" } #<== here I want to render html no js 
     else 
      format.js { render :action => "new" } 
     end 
     end 
    end 

내가 show.html.erb 동작하지 아약스의 show.js.erb 조치를 렌더링 할 의뢰.

어떻게하면됩니까?

UPDATE는

이 나를 위해 작동하는 것 같다 :

나는 내 응용 프로그램 컨트롤러에 넣고 :
def redirect_to(options = {}, response_status = {}) 
     if request.xhr? 
     render(:show) {|page| page.redirect_to(options)} 
     else 
     super(options, response_status) 
     end 
    end 

가 지금은 Ajax 호출로 리디렉션 할 수 있습니다. 이 forum

format.js {redirect_to @board} 

감사 :

+0

이 질문이 도움이됩니까? http://stackoverflow.com/questions/339130/how-do-i-render-a-partial-of-a-different-format-in-rails – spike

+0

Thanks Spike. 정확히 내가 찾던게 아니야. 나는 AJAX 요청을위한 js 페이지 대신 html 페이지를 렌더링하고 싶다. – chell

+0

전체 파일 이름 제공에 대한 제안 : 파일이 작동하지 않습니까? 내 테스트가 작동하는 것 같았다. (: file => "controller/show.html.erb") – spike

답변

0

이 나를 위해 작동하는 것 같다 :

내가 내 응용 프로그램 컨트롤러에 넣고 :
def redirect_to(options = {}, response_status = {}) 
     if request.xhr? 
     render(:show) {|page| page.redirect_to(options)} 
     else 
     super(options, response_status) 
     end 
    end 

가 지금은 Ajax 호출로 리디렉션 할 수 있습니다.

format.js {redirect_to @board} 
1

설정 데이터 유형 당신의 AJAX 요청에 "HTML"와 레일이 제대로 AJAX 요청을 처리하고 HTML이 아닌 JS를 렌더링합니다.

+0

거룩한 암소 나는 그것을 시도 할 것이다. 감사 드미트리 – chell

+0

레일스 양식에서 dataType을 설정하는 방법에 대해 알고 싶습니다. – chell

+0

제 경우에는 아약스 제출 양식을 원합니다. 오류가 있으면 jquery 항목을 수행하십시오. 그렇지 않으면 쇼 페이지로 redirect_to. dataType을 변경해도 위에 게시 한 메소드와 같은 두 가지 동작을 모두 가질 수 없습니다. – chell

관련 문제