我的应用中有很多这样的代码:
if @document.template.name == "Newsletter"
...
end
我意识到这是糟糕而丑陋的代码。我不确定这种代码有哪些替代方案。有什么最佳实践吗?但愿如此。干杯!
示例控制器代码
在此控制器代码示例中,如果名称为"Newsletter"
. 我知道这很混乱,而且很多代码都应该移到模型中。我更关心条件。
if @document.template.name == "Newsletter"
source = Magick::Image.read(@document.component.image_newsletter.path).first
overlay = Magick::Image.read(@document.user.logo.path).first.resize_to_fit(source.columns)
rec = Magick::Draw.new
rec.stroke = "##{@document.user.colour1}"
rec.fill = "##{@document.user.colour1}"
rec.rectangle 0, 0, source.rows, 5
lank = source.extent(source.columns, source.rows+overlay.rows, 0 ,0)
combo = lank.composite(overlay, Magick::SouthGravity, 0, 0, Magick::OverCompositeOp)
rec.draw(combo)
client.update_with_media("#{@document.title}: #{@document.remove_html(@document.components.first.body[0..100])}...", open(combo.to_blob))
else
client.update("#{@document.title}: #{@document.remove_html(@document.components.first.body[0..100])}... http://domain.com#{share_path(@document.user.ftp, @document)}")
end