Ruby三元运算符和方法调用

时间:2015-05-06 07:34:32

标签: ruby ruby-2.1.5

我正在使用ruby 2.1.5,面对三元运算符的一些问题

语法错误

request.xhr?  ? render :json => "success"  : redirect_to index_url

工作

request.xhr?  ? render(:json => "success") : redirect_to(index_url)

有些人可以解释一下它的工作原理以及为什么不能正常工作?提前致谢

1 个答案:

答案 0 :(得分:0)

当你使用简写语法(没有括号)时,ruby期望直到行尾的所有内容都是你方法的参数。因此,您的“语法错误”示例被理解为:

request.xhr?  ? render(:json => "success"  : redirect_to index_url)

这显然是错误的。