我有三个数值变量:on_the_ground
,double_round_trip
和point_to_point
。 price
函数根据一些简单的逻辑返回其中之一。
下面是当前的工作方式。
def price
return on_the_ground if date_range == 1
values = [
on_the_ground,
double_round_trip
]
if !turbo? && !vlj?
values.push(point_to_point)
end
values.compact.min
end
我想要一个可以根据应返回的值返回符号的函数。例如:
def price_name
return :on_the_ground if date_range == 1
... etc...
end
答案 0 :(得分:0)
如果我明白你的意思,为什么不使用数组?
def price_name_for date_range
[:on_the_ground, :double_round_trip, :point_to_point][date_range-1]
end
price_name_for 1 #=> :on_the_ground
price_name_for 2 #=> :double_round_trip
price_name_for 3 #=> :point_to_point
答案 1 :(得分:-1)
您可以使用大小写
case values
when double_round_trip
return :double_round_trip
when on_the_ground
...
答案 2 :(得分:-1)
我最终使用:
price_options.key(price) # double_round_trip