2 декабря 2018 г.

TLDR — нам нужна переменная экземпляра, потому что form_for без нее работать не будет.

Прошли последние недели. Во Flatiron мы перешли от изучения Ruby к созданию интерфейсов командной строки, к Sinatra, а теперь и к Rails.

Момент «ага».

Эта статья о моем любимом моменте этой недели: когда я наконец понял, зачем нам нужно использовать переменную экземпляра inform_for. Ниже приведен пример использования form_for и collection_select для создания новой формы сотрудника:

Что происходит в этом примере?

form_for: это наш помощник представления.
@employee: см. раздел ниже.*
f.: метод form_for возвращает объект построителя формы (переменная f).
collection_select: это предварительный -определенный метод построения формы rails, вызываемый для f.
dog_id: сохранить ввод пользователя (независимо от того, что он есть) в params[:id].
@dogs: это фактически редактируемый объект.< br /> :id: сохранить идентификатор любой собаки, которую выберет пользователь.
:name: показать пользователю имена собак в раскрывающемся меню.

@employee

В нашем примере выше новая форма начинается пустой. Затем пользователь заполняет форму и нажимает кнопку «Отправить».

Найдите минутку, чтобы подумать о том, что произойдет дальше в жизненном цикле формы. Какие данные публикуются? Откуда это? Как им манипулирует наш контроллер?

Пояснение

Тег form_for не волшебный. Он отображает html в браузере. Html form Теги формы Html имеют атрибуты действия и метода, которые указывают, какой маршрут выбрать дальше и что делать с данными, введенными в форму.

Здесь form_for собирает данные, введенные в форму, и сохраняет их в переменной экземпляра @employee. Затем rails передает эти данные следующему маршруту (редактированию) в качестве параметров.

Поскольку form_for собирает данные в переменной экземпляра, наши параметры можно легко уничтожить на странице редактирования и использовать для публикации нового сотрудника в базе данных.

Вот ссылка на оригинальный пост в моем блоге: https://edezekiel.com/blogs/12_02_2018.html