当我使用if/else
Sinatra命令的缩写语句时,我收到语法错误:
request.cookies['blog'].nil? ? erb :blog : redirect '/done'
Run Code Online (Sandbox Code Playgroud)
返回此错误:
/home/sinatra/ptt/ptt.rb:107: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' request.cookies['blog'].nil? ? "erb :blog" : redirect '/done' ^
Run Code Online (Sandbox Code Playgroud)
这两个语句本身都会产生错误(没有Sinatra代码作为另一个语句).
这是一个Sinatra问题还是语法不正确?
当true/false语句是纯Ruby时,不会发生错误:
request.cookies['blog'].nil? ? foo = 1 : bar = 2
Run Code Online (Sandbox Code Playgroud)
我认为Ruby无法决定什么是方法调用以及什么属于该if
语句.试试这个:
request.cookies['blog'].nil? ? erb(:blog) : redirect('/done')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
321 次 |
最近记录: |