我是铁轨上的红宝石新手。我正在从php迁移到ruby。现在我有一些正在转换成ruby代码的php项目。但是如何在rails 4上将此切换代码转换为ruby? function ajax($ command){
switch ($command) {
case 'page_reload':
$this->ajax_delete_entries_of_current_uid();
break;
case 'labchem_products':
$this->ajax_labchem_products();
break;
case 'labchem_carts':
$this->ajax_labchem_carts();
break;
case 'labchem_customers':
$this->ajax_labchem_customers();
break;
case 'products_selected':
$this->ajax_products_selected();
break;
case 'products_total':
$this->ajax_products_total();
break;
case 'products_delivery_info':
$this->ajax_products_delivery_info();
break;
case 'labchem_orders':
$this->ajax_labchem_orders();
break;
default: break;
}
}
答案 0 :(得分:2)
case command
when 'page_reload' then ajax_delete_entries_of_current_uid()
when 'labchem_products' then ajax_labchem_products()
# or
when 'labchem_carts'
ajax_labchem_carts()
# and so on ...
end
您不需要break
。只执行一个或不执行when
。如果没有when
匹配,您可以注意else
执行某些操作。
在ruby中,case将返回最后一个值,因此您可以将其保存为变量。
result =
case command
when 'a', 'b' then 1
when 'c' then 2
when 'd'..'z' then 3
else
0
end
比较由对象类型和值(===)完成。
case 1
when '1' then 'a'
when 1 then 'b'
end
# => "b"