Я пытаюсь понять, как связаны класс контроллера и файлы .html.erb в Rails, и как представление обращается к данным в методах контроллера. Например, у меня есть следующий класс контроллера:
class SomeController < ApplicationController
def show
# defining some data to access in the view
x = 1
@y = 2
end
end
Если в соответствующем .html.erb файле просмотра я пытаюсь получить доступ к @y
, это прекрасно работает
<p> <%= @y %> </p>
Однако, если я пытаюсь получить доступ к x
, выдает ошибку
<p> <%= x %> </p>
неопределенная локальная переменная или метод 'x'
Концептуально, почему @y
доступен в представлении .html.erb , а x
нет.
PS: я должен добавить, что я знаю, что переменные с @ указывают переменные экземпляра в Ruby, поэтому (я думаю) @y
будет переменной экземпляра экземпляра SomeController
. Однако мне непонятно, как это влияет на то, к чему .html.erb файл представления имеет доступ с SomeController
.