ivar - це скорочення від instance variable (змінна екземпляра). У Ruby вона записується з @ перед назвою, наприклад:
@user = User.find(params[:id])
Як це працює?
У Ruby кожен об’єкт має свій набір змінних екземпляра. Тобто @user у контролері і @user у представленні (view) - це одна і та ж змінна в межах одного запиту, але вона належить конкретному екземпляру контролера.
Rails автоматично робить усі @-змінні з контролера доступними у відповідному шаблоні.контролер:
# app/controllers/users_controller.rb def show @user = User.find(params[:id]) end
та сама в'юха:
<!-- app/views/users/show.html.erb --> <h1><%= @user.name %></h1>
Якщо коротко:
- @ivar = instance variable = змінна екземпляра об’єкта
- Видимість в межах одного екземпляра
- Rails автоматично передає @-змінні з контролера у view
- Використовується для передачі даних між шарами MVC
Цей допис поки що не має жодних доповнень від автора/ки.