Ruby单行ifelse语句不使用Sinatra命令?
当我在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
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')
你的问题是什么?你的问题是什么?