如何写出更好的方法?

问题描述 投票:0回答:1

用红宝石编写它的更好和正确的方法是什么?我需要创建像矩阵一样的东西。

def suggest_by_area_and_price area_range, price_range
    broker_level = case area_range
                       when 0..100
                           return case price_range
                                      when 0..25000
                                          :intern_broker
                                      when 25001..Float::INFINITY
                                          :junior_broker
                                  end
                       when 101..200
                           return case price_range
                                      when 0..18000
                                          :intern_broker
                                      when 18001..30000
                                          :junior_broker
                                      when 30000..Float::INFINITY
                                          :broker
                                  end



                       #....


                       when 1500..Float::INFINITY
                           :senior_broker
                       else
                           :junior_broker
                   end
end
ruby range
1个回答
0
投票
map = {
  (1..5) => {
    (100..200) => :foo,
    (201..300) => :bar
  },
  (6..10) => {
    (100..200) => :baz,
    (201..300) => :boo
  }
}
map.find{|k,_| k === 3}.last.find{|k,_| k === 250}.last
# => :bar

但是,正如我在评论中所说,我会把这张地图放在其他地方。

© www.soinside.com 2019 - 2024. All rights reserved.