渲染错误的观点
问题描述:
有一个简单的代码:渲染错误的观点
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
它工作正常。
这是什么奇怪的行为呢?任何人都可以解释吗?
谢谢。
答
问题是在respond_to里面的返回。 如果你做这样的工作原理(在这里)。
if !logged_in?
respond_to do |format|
format.js {render "new_failed"}
end
return
end