2012-01-24 2 views
1

자바 스크립트가없는 사용자의 경우 정상적으로 성능이 저하되는 웹 사이트가 있습니다. 자바 스크립트가없는 사용자의 경우 컨트롤러는 HTML이 포함 된 양식 제출에 응답합니다. 자바 스크립트가있는 사용자의 경우 AJAX 양식이 제출됩니다. 이 컨트롤러의 작성 방법에 있습니다AJAX 통화 후에 플래시 메시지가 나타나지 않도록 할 수 있습니까?

if [email protected] 
     flash[:error] = array_to_list(@goal.errors.full_messages) 
    else 
     flash[:success] = "Your goal was successfully added." 
    end  

    respond_to do |format| 
     format.html { redirect_to :action => "show"} 
     format.js 
    end 

나는 사용자가 자바 스크립트를 사용할 경우 사용자가 이미 처리 한 후 다음이 표시되므로, 플래시에 해당 메시지를 넣어 싶지 않아요. Rails가 플래시 메시지를 표시 할 수있는 방법이 있습니까 html로 응답하는 경우에만?

답변

4

이렇게하려면 코드의 flash 비트를 format.html 블록에 넣을 수 있습니다. 이 같은

아마 뭔가 :

@goal.save 

respond_to do |format| 
    format.html do 
    if @goal.errors 
     flash[:error] = array_to_list(@goal.errors.full_messages) 
    else 
     flash[:notice] = "Your goal was successfully added." 
    end 
    redirect_to :action => "show" 
    end 

    format.js 
end 

당신은 당신이뿐만 아니라 AJAX 요청과 오류 메시지의 어떤 종류를 할 수 있다는 생각을 했습니까? 어떤 이유로 AJAX 요청이 중단되어 물건이 저장되지 않는 경우 좋은 생각 일 수 있습니다.

관련 문제