Существует простой код:
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
Когда пользователь не вошел в систему, «new_failed» должен быть обработан, но, фактически, «новое» действие отображается.
Когдая положил 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
Он работает правильно.
Что за странное поведение?Кто-нибудь может это объяснить?
Спасибо.