Добавлю к уже сказанному, так как все верно.
Я понимаю, что «класс X ‹ ActiveRecord::Base» предназначен для создания объекта в модели и этот «класс ApplicationController ‹ ActionController::Base» для создания объекта в контроллере... так что есть что-то подобное для создания объекта в представлении, просто чтобы округлить все три компонента MVC?
Это правильный путь, но есть некоторые семантические различия.
class User < ActiveRecord::Base
просто создает подкласс ActiveRecord::Base. Пока вы не сделаете что-то вроде User.create()
, вы получите экземпляр этого класса, который иногда можно назвать объектом.
Подкласс — это специальное слово для класса, у которого есть родитель. Как вы, возможно, помните, в ruby классы — это, как ни странно, все подклассы класса Object.
Кроме того, создание подкласса ActiveRecord::Base не следует рассматривать как создание объекта в модели. Вместо этого рассмотрите свой подкласс как описание модели (обычно это некоторые данные, которые вы хотите сохранить). Каждый подкласс сам по себе является моделью. Это все семантика, но она может помочь вашему пониманию.
То же самое и с контроллером. Вы не создаете объект в контроллере, вместо этого вы создаете совершенно новое описание контроллера. Это описание на самом деле не является конкретным, пока оно не будет создано, что с rails происходит автоматически, когда вы или пользователь запрашиваете страницу из приложения.
Наконец, действительно существует класс ActionView::Base, завершающий трио. Rails создает его автоматически при вызове render
в вашем контроллере.
person
iterion
schedule
08.01.2013