【发布时间】:2019-03-08 18:30:24
【问题描述】:
我有两种方法几乎做同样的事情,但在传递参数方面略有不同:
def generate_file(filename)
draw
FileUtils.mkdir_p 'tmp/pdf'
@pdf.render_file "#{Rails.root}/tmp/pdf/#{filename}"
end
def generate_pdf(report, version)
draw
path = "tmp/pdf/reports/#{report.reference}"
FileUtils.mkdir_p(path)
@pdf.render_file "#{Rails.root}/#{path}/#{version}"
end
我想重构它,并在调用生成 pdf 文件的函数时仅使用 generate_file 方法。我应该传递一个可选的params (version = nil) 并测试它是否已定义?
像这样:
def generate_file(filname, version = nil, report = nil)
draw
if report && version
path = "tmp/pdf/reports/#{report.reference}"
FileUtils.mkdir_p(path)
@pdf.render_file "#{Rails.root}/#{path}/#{version}"
else
FileUtils.mkdir_p 'tmp/pdf'
@pdf.render_file "#{Rails.root}/tmp/pdf/#{filename}"
end
end
【问题讨论】:
-
用英文书写时请使用英文标点符号,而不是法文标点符号。请与代码中的间距保持一致。
标签: ruby-on-rails ruby methods parameters arguments