红宝石一行"检查价值和返回"

Jul*_*n H 4 ruby ruby-on-rails

我正在挖掘一些有趣的代码,我确信这是错误的.我想知道是否有人想过开发人员试图使用的语法?

继承人的伪造代码:

render :nothing => true and return if params[:name].nil?
Run Code Online (Sandbox Code Playgroud)

我天真的修复暗示了我的编程语言背景:

if params[:name].nil?
  render :nothing => true, :status => 404
  return
end
Run Code Online (Sandbox Code Playgroud)

有更优雅,更像红宝石的方式吗?(分号不算:)

jam*_*raa 12

因为在Ruby运算符优先级中,if优先级低于and,它的工作方式与读取的完全相同,并且在我看到的很多rails代码中实际上很常见.


pot*_*uff 5

简单:

return render(:nothing => true) unless params[:name]
Run Code Online (Sandbox Code Playgroud)

但是,更好的:

return render(:nothing => true)  if params[:name].blank?
Run Code Online (Sandbox Code Playgroud)