2012-09-21 3 views
0

내 앱에서 jquery file upload 유틸리티를 사용하고 있습니다. 좀 레일에서 일반적으로 다음과 같은 코드 ...json 호출을 통해 다른 페이지로 리디렉션

if @course_module.save 
    flash[:success] = "Class created!" 
    redirect_to course_course_modules_path(@course) 
else 
    render 'new' 
end 

그것은 내 양식에 오류가있는 경우 오류 메시지를 표시하거나 성공적으로 저장 한 경우 다른 페이지로 리디렉션이있는 경우. 그러나 jquery 플러그인을 통해 페이지가 제출 될 때 그렇지 않습니다. 그 이유는 .... 내가 대신 JSON을 반환하는 대신 첫 번째 코드 조각을 할 것입니다 방법

  format.json { 
      render ':json => [@course_module.to_jq_upload].to_json ' 
     } 

뭔가를 반환하는 JSON 객체가 필요하다? 저장이 성공하면 리디렉션하거나 그렇지 않은 경우 오류 메시지를 표시합니다. 나는 다음과 같은 것을 시도했다. ...

render 'new' 

그러나 그것은 작동하지 않았다.

+0

찾고있는 것을 희망 https://github.com/ banditj/fily/blob/no-asset-pipeline/app/controllers/pictures_controller.rb). Jquery 파일 업로드 github repo의 Wiki 페이지에있는 예입니다. – Kashyap

답변

0

정상적인 아약스 호출에는 성공 및 오류 메서드가 있습니다. json 응답에 값으로 이동하려는 경로가있는 redirect_url 키를 추가하고 success 메서드 내에서이 URL로 리디렉션합니다.

$.ajax({ 
type: "GET", 
url: '/path to your controller', 
datatype: 'json', 
success: function(data) { 
    window.location.href = data.redirect_url 
}; 

}); 

와 JSON 응답은 컨트롤러 내부에 다음과 같이한다

render :json => {course_module: @course_module.to_jq_upload, redirect_url: course_course_modules_path(@course) }.to_json 

내가 그 당신이 [이 도움이 될] (

관련 문제