如何改进具有值输出的函数代码

时间:2015-04-07 08:18:15

标签: ruby-on-rails

嘿所以我的用户控制器中有两个功能让我烦恼。他们每人占用10条线,看起来很可怕。我真的不知道如何改进函数的代码,但我拒绝相信不能让它看起来比它的更好。

def campaigns_per_hour
  if plan_id == 1
    10
  elsif plan_id == 2
    17
  elsif plan_id == 3
    25
  else
    17
  end
end

用户可以订阅三个不同的计划,根据计划,他们可以访问不同数量的计划。有人知道如何改善这个吗?

1 个答案:

答案 0 :(得分:0)

您可以在此处使用数组,但它们不支持默认值。它也是一个id,而不是一个数字,所以使用哈希在语义上也很好。

plans = {1 => 10, 2 => 17, 3 => 25}
plans.default = 17
plans[plan_id]