Ruby中的其他结构
我写过类似这样的东西,这是我从Visual Basic 6.0知道的同样的if-else逻辑,但是我确信有更好的写它的“Ruby方法”。
你能告诉我它在Ruby世界中的样子吗?
if params[:medication_name].nil?
med_name = 'all'
elsif params[:medication_name] == 'undefined'
med_name = 'all'
else
med_name = params[:medication_name]
end
对于你的情况,这样的事情:
med_name = params[:medication_name]
med_name = 'all' if [nil, 'undefined'].include? med_name
对于更常见的if
/ elsif
/ else
长链,请查看case
语句。 在这种情况下,它们过度杀伤,但这里有一个例子:
med_name = case params[:med_name]
when 'undefined', nil
'all'
else
params[:med_name]
end
有几种不同的方法可以简化这一点,例如:
med_name = params[:medication_name]
med_name = 'all' if med_name.nil? or med_name == 'undefined'
Ruby独有:
med_name = {nil=>'all', 'undefined'=>'all'}[params[:medication_name]] || params[:medication_name]
链接地址: http://www.djcxy.com/p/25643.html