如何将此php代码转换为Ruby(RoR)代码


How to convert this php code to ruby (RoR) code?

我是轨道上的Ruby新手。我正在从 php 迁移到红宝石。现在我有一些 php 项目正在转换为 ruby 代码。但是如何将此开关代码转换为轨道上的红宝石 4?函数 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;
    }
} 
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"

更多 ruby-doc.com 和 tutorialspoint.com。