2017-02-08 5 views
0

ich tue dies in meinem Code ProduktcontrollerFall mit params Schlüsselleisten

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 

es gut funktionieren. Wie erreiche ich dasselbe mit dem Fall? Ich kann nur bekommen es

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

Antwort

1

Diese

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

Yup tun! klappt wunderbar. Ich wusste nicht, dass wir nicht immer etwas nach der Case-Anweisung schreiben müssen. Danke mein Herr :) – 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 

einfache Syntax für Case-Anweisung zu arbeiten, ist

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