2011-02-24 3 views
0

간단한 코드가있다 : 로그인하지에서 사용자가 렌더링되어야한다 "new_failed"때 잘못된 뷰를 렌더링

def new 
    if !logged_in? 
    respond_to do |format| 
     format.js {render "new_failed"} 
     return 
    end 
    end 

    article = Article.find params[:id] 
    @comment = article.comments.build 

    respond_to do |format| 
    format.js 
    end 
end 

가 있지만, 실제로는, "새로운"행동이

을 렌더링이.

내가 logged_in을 넣을 때? 방법 끝 :

def new 
    if !logged_in? 
    respond_to do |format| 
     format.js {render "new_failed"} 
     return 
    end 
    end 

    article = Article.find params[:id] 
    @comment = article.comments.build 

    respond_to do |format| 
    format.html # new.html.erb 
    format.js 
    end 
end 

정상적으로 작동합니다.

이상한 행동은 무엇입니까? 아무도 그것을 설명 할 수 있습니까?

감사합니다.

답변

1

문제는 respond_to 내부의 반환입니다. 이렇게하면 (여기서) 작동합니다.

if !logged_in? 
    respond_to do |format| 
    format.js {render "new_failed"} 
    end 
    return 
end 
관련 문제