Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby单行ifelse语句不使用Sinatra命令?_Ruby_Sinatra - Fatal编程技术网

Ruby单行ifelse语句不使用Sinatra命令?

Ruby单行ifelse语句不使用Sinatra命令?,ruby,sinatra,Ruby,Sinatra,当我在Sinatra命令中使用缩短的if/else语句时,我收到一个语法错误: request.cookies['blog'].nil? ? erb :blog : redirect '/done' 返回此错误: /home/sinatra/ptt/ptt.rb:107: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' request.cookies['blog'].nil? ? "erb :bl

当我在Sinatra命令中使用缩短的
if/else
语句时,我收到一个语法错误:

request.cookies['blog'].nil? ? erb :blog : redirect '/done'
返回此错误:

/home/sinatra/ptt/ptt.rb:107: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' request.cookies['blog'].nil? ? "erb :blog" : redirect '/done' ^
这两条语句单独使用时都会产生错误(另一条语句没有Sinatra代码)

这是Sinatra问题还是语法不正确

当true/false语句为纯Ruby时,不会发生错误:

request.cookies['blog'].nil? ? foo = 1 : bar = 2

我认为Ruby无法决定什么是方法调用,什么属于
if
语句。试试这个:

request.cookies['blog'].nil? ? erb(:blog) : redirect('/done')

我认为Ruby无法决定什么是方法调用,什么属于
if
语句。试试这个:

request.cookies['blog'].nil? ? erb(:blog) : redirect('/done')

你的问题是什么?你的问题是什么?