我不明白为什么条件不起作用, 如果用户名和密码为空,我希望执行该部分
post '/login' do
credentials = CGI.parse request.body.read
if credentials['username'].nil? || credentials['password'].nil?
status 603
return ;
end
end
答案 0 :(得分:2)
您使用了错误的逻辑运算符OR(||
)而不是AND(&&
)
post '/login' do
credentials = CGI.parse request.body.read
if missing_credentials?
status 603
return ;
end
end
private
def missing_credentials?
credentials['username'].nil? && credentials['password'].nil?
end
答案 1 :(得分:1)
您的问题表明如果用户名和密码为nil,您希望执行代码。如果用户名或密码为零,则执行代码。
但更有意义的是,如果任何一个部分丢失,您希望代码执行。假设这是你想要的,我会写条件为:
unless credentials['username'] && credentials['password']
如果你确实只想在两个部分都缺失的情况下执行代码,那么你可以这样做:
unless credentials['username'] || credentials['password']