【发布时间】:2012-01-22 16:00:59
【问题描述】:
所以我在多个控制器中有一个视图方法,它们看起来几乎完全相同:
def show
show! do |format|
format.json do
if @text.activated?
@text.log
render_for_api :texts_all, :json => @text
else
render :nothing => true
end
end
format.pdf do
pdf = QrPdf.new(@text)
send_data pdf.render, filename: "text_#{@text.id}.pdf", type: "application/pdf"
end
end
end
用于此的模型不同,但它们都具有在此方法中使用的相同属性(activated、log、id)。我还可以将render_for_api 给定的散列更改为当前为texts_all、documents_all 等的散列,使其在任何地方都相同。
有没有办法在多个模型中使用此代码而不会产生大量重复?
感谢您的每一个提示!
特别是我发现很难处理do |format| 块。但我也不确定将代码放在哪里以及如何将其与不同类型的模型一起使用。
谢谢。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 refactoring controller