Rails:render partial
From Blognone
คำสั่ง render เป็นเหมือนคำสั่งสร้าง HTML ออกมา
ในกรณีที่อยู่บน View render ก็เหมือนการนำไฟล์ที่กำหนดใน partial มาแทรก
<%= render :partial => "person", :locals => { :name => "david" } %>
แต่ถ้าอยู่บน controller จะเหมือนการกำหนดว่า controller นั้นให้ return HTML หรือไฟล์ที่ partial ตามที่เราจะกำหนด
... render :partial => "person", :locals => { :name => "david" } %>
ในตัวอย่างข้างต้น render จะไปเรียกไฟล์ _person.html.erb และเราสามารถนำค่า name ไปใช้ได้เลย
<!-- _person.html.erb --> <H1>Hello <%= name %></H1>
การใช้ :locals เราจะส่ง hash ไปให้กับ partial ซึ่งใส่ได้มากกว่าหนึ่งค่า
render :partial => "person", :locals => { :name => "david", :surname => "source", :sun => @sun }
การใช้ :object เราจะส่ง Object หนึ่งตัวไปให้กับ partial โดยเราจะเรียกใช้ object ตัวนั้นผ่าน variable person
render :partial => "person", :object => @new_person
<!-- _person.html.erb --> <H1>Hello <%= person.name %></H1>
การใช้ :collection เราจะส่ง Object ใน array ไปให้กับ partial ทีละตัว
render :partial => "person", :collection => @winners
มีค่าเท่ากับ
@winners.each do |winner| render :partial => "person", :object => winner end
การใช้ :status เป็นการส่งค่า status code ค่า 500 (internal error) ออกไป ซึ่งโดย default จะไปเรียกไฟล์ /public/500.html
render :partial => "broken", :status => 500