2017-02-06 3 views
1

Я не могу понять, почему мой аргумент case/when не работает ... я не мог найти много информации о 'AND (&)'.Ruby on rails Случай, когда заявление не работает

points = -180 
case points 
when (points >= -9999) && (points < -300) then 
    title = "bad player" 
when (points >= -300) && (points < -100) then 
    title = "not reliable" 
when (points >= -100) && (points < 100) then 
    title = "Newbie" 
end 

Я получаю название = пустой ..

Спасибо

ответ

3

Попробуйте

points = -180 
case 
when (points >= -9999) && (points < -300) 
    title = "bad player" 
when (points >= -300) && (points < -100) 
    title = "not reliable" 
when (points >= -100) && (points < 100) 
    title = "Newbie" 
end 

#=> "not reliable" 

Вы также можете использовать диапазон

points = -180 

title = 
    case points 
    when -9999..-301 
    "bad player" 
    when -300..-99 
    "not reliable" 
    when -100..99 
    "Newbie" 
    end 


#=> "not reliable" 
+0

работал. Ура! –

+0

Рад, что помогло :) –

1

Так вы casepoints, но вы пытаетесь сделать что-то совершенно другое в статьях when. По меньшей мере два из трех when s будут оцениваться до false, а другой - до true. Таким образом, вы фактически проверяете, -180: true или false.


То, что вы на самом деле хотели сделать, вероятно:

case points 
when -9999...-300 then 'bad player' 
when -300...-100 then 'not reliable' 
when -100...100 then 'Newbie' 
end 
Смежные вопросы