ivar - ist eine Abkürzung für
instance variable (Instanzvariable).
In Ruby wird sie mit
@ vor dem Namen geschrieben, zum Beispiel:
@user = User.find(params[:id])
Wie funktioniert das?
In Ruby hat jedes Objekt seine eigene Menge an Instanzvariablen. Das heißt, @user im Controller und @user in der Ansicht (view) - das ist dieselbe Variable innerhalb einer Anfrage, aber sie gehört einer bestimmten Instanz des Controllers.
Rails macht automatisch alle @-Variablen aus dem Controller im entsprechenden Template verfügbar.
Controller:
# app/controllers/users_controller.rb
def show
@user = User.find(params[:id])
end
und die gleiche Ansicht:
<!-- app/views/users/show.html.erb -->
<h1><%= @user.name %></h1>
Kurz gesagt:
- @ivar = Instanzvariable = Instanzvariable eines Objekts
- Sichtbarkeit innerhalb einer Instanz
- Rails überträgt automatisch @-Variablen vom Controller zur Ansicht
- Wird verwendet, um Daten zwischen den MVC-Schichten zu übertragen