【发布时间】:2016-06-14 11:22:35
【问题描述】:
写return render 'edit'和render 'edit' and return有什么功能上的区别吗?两种语法都可以安全使用吗?
return render 语法稍微简洁一些,但这里官方提倡render and returnAvoiding Double Render Errors。
return render 将返回渲染方法返回的任何值,render and return 将从控制器方法返回 nil。
【问题讨论】:
-
另一个棘手的事情是使用
render and return,不要使用render && return,尽管您的 Rubocop 可能不喜欢它。 -
Rubocop 确实标记了它并建议使用
&&。 Rubocop 并不总是正确的。 -
我个人认为
return render更清晰,尤其是如果通话时间很长,而and最右边。从视觉上看,return render非常清晰。 -
请参阅this question,了解为什么要小心使用
render "foo" && return。另请注意,您可以通过在渲染方法中添加括号来解决掉毛问题,如下所示:render("foo") && return