คุณสามารถรับการเปรียบเทียบจากglobal
ตัวแปรหรือตัวแปรที่ส่งผ่านโดยการอ้างอิงและคิดว่าเป็นส่วนหนึ่งของฟังก์ชัน ดังนั้นการใช้ตัวแปรอินสแตนซ์จึงค่อนข้างคล้ายกับตัวแปรที่ส่งผ่านไปยังฟังก์ชั่นเป็นข้อมูลอ้างอิงสำหรับทั้งหมดที่เป็นของมือโปรและคอน
# controller
def index
@var = 1
end
#view index.html.erb
<%= @var %><br/>
<%= render 'foo' %><br/>
<%= @var %>
#partial _foo.html.erb
<%= @var = 2 %>
ผลลัพธ์จะเป็น
1
2
2
คุณอาจต้องการพฤติกรรมดังกล่าว แต่ในกรณีส่วนใหญ่คุณไม่ต้องการมัน และง่ายต่อการแนะนำบั๊กด้วยวิธีนี้และยากที่จะติดตามพวกมัน นี่คือสาเหตุที่แนะนำให้ทำเช่นนี้เพราะมันจะแยกขอบเขตของตัวแปรที่ใช้ในมุมมองและเนื้อหา:
#view index.html.erb
<%= @var %><br/>
<%= render 'foo', var: @var %><br/>
<%= @var %>
#partial _foo.html.erb
<%= var = 2 %>
ผลลัพธ์:
1
2
1