具有多个条件的Ruby Case语句

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

我有一个根据用户选择返回图像大小的方法,现在我想向我的case语句添加另一个条件。当我在系统调用pdfinfo时再次调用该方法时,它没有设置正确的图像尺寸,如果用户选择了STANDARD,则应为1250x1075,但它甚至没有执行case语句,而是直接转到[ C0]并设置else

这是我尝试过的

1728x1075

这是我调用我的方法的地方

205   def FaxCall.set_image_size(resolution, pdf_size=nil)
206     case resolution
207     when STANDARD && (pdf_size != LEGAL_PDF_SIZE)]
208       image="1728x1075"
209     when FINE && pdf_size != LEGAL_PDF_SIZE
210       image="1728x2150"
211     when SUPERFINE && pdf_size != LEGAL_PDF_SIZE
212       image="1728x4300"
213     when [STANDARD, (pdf_size === LEGAL_PDF_SIZE)]
214       image="1250x1720"
215     when FINE && pdf_size == LEGAL_PDF_SIZE
216       image="1700x2800"
217     when SUPERFINE && pdf_size == LEGAL_PDF_SIZE
218       image="3400x5572"
219     else
220       image="1728x1075"
221     end
222     return image
223   end
ruby-on-rails ruby switch-statement case-statement
1个回答
0
投票

这是因为135 def FaxCall.prepare_doc(in_file,out_file,res=STANDARD) 139 image = FaxCall.set_image_size(res) 140 res = STANDARD unless RESOLUTION_OPTIONS.values.include?(res) 145 if ext.eql?("pdf") 146 pdf_size = `pdfinfo "#{in_file}" | grep 'Page size:'`.gsub(/Page size:\s*\b/, '').chomp 147 if pdf_size == LEGAL_PDF_SIZE 148 image = FaxCall.set_image_size(res,pdf_size) STANDARD具有相同的图像尺寸。

ELSE
207     when STANDARD && (pdf_size != LEGAL_PDF_SIZE)]
208       image="1728x1075"

明白我的意思吗?

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