ดังนั้นฉันจึงมีวิธีการดูในคอนโทรลเลอร์หลายตัวซึ่งส่วนใหญ่จะมีลักษณะเหมือนกันทุกประการ:
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|
แต่ฉันไม่แน่ใจว่าจะใส่โค้ดไว้ที่ไหนและจะใช้กับรุ่นประเภทต่างๆ ได้อย่างไร
ขอบคุณ.