2017-02-08 3 views
0

я делаю это в моем контроллере кода продуктаслучай с Params ключевыми рельсами

def index 
if params[:tag] 
     #do filter based on tag 
else 
    if params[:category] 
     #do filter based on category 
    else 
     #default. no filter    
    end 
end 
end 

он отлично работает. Как добиться того же, используя случай? я просто не могу заставить его работать

case <something?> 
when <tag?> 
    #do filter based on tag 
when <category?> 
    #do filter based on category 
else 
    #default  
end 

ответ

1

Это сделает

def index 
    case 
    when params[:tag] 
    # Do filter based on tag 
    when params[:category] 
    # Do filter based on category 
    else 
    # Default. no filter    
    end 
end 
+0

Да! работает как шарм. не знал, что нам не всегда нужно что-то ставить после заявления дела. Спасибо, сэр :) – Aipack

0
puts case variable 
when 1 
    # variable value 1 for tag 
    #do filter based on tag 
when 2 
    # variable value 2 for category 
    #do filter based on category 
else 
    #default. no filter 
end 

простой синтаксис для случая утверждения

case expr0 
when expr1, expr2 
    stmt1 
when expr3, expr4 
    stmt2 
else 
    stmt3 
end