Параметр form_with модели для вложенных ресурсов Rails - PullRequest
0 голосов
/ 27 декабря 2018

Привет, я новичок в Rails (и Stackoverflow), так что извините за мой вопрос.

Я озадачен <%= form_with(model: [ @article, @article.comments.build ], local: true) do |form| %> в руководстве "Начало работы с рельсами".

  1. В руководстве упомянуто [@article, @article.comments.build] "строит вложенный маршрут", но как это сделать?

  2. Как уже упоминалось в edgeguides model: @article передает фактический объект @article в форму.Итак, как мы можем передать вложенный маршрут к параметру модели?

Заранее благодарим за ваше руководство и терпение!

ОБНОВЛЕНИЕ
После долгих исследований я добился следующего прогресса

build - псевдоним для new.[@article, @article.comments.build] - это массив Параметр model принимает экземпляр класса (в данном случае comment) и выводит область (:comment) и url (article_comments_path(@article)).Поскольку переданный в него экземпляр является новым, rails выводит метод следующим образом: post Source

Так как хеш [@article, @article.comments.build] возвращает экземпляр класса comment, сообщая при этомнаправляет правильный URL (article_comments_path (@article))?

1 Ответ

0 голосов
/ 27 декабря 2018

В edgeguides предоставляется только пример маршрутизации в пространстве имен, а не в качестве примера вложенной маршрутизации.

Когда вы передаете [@article, @article.comments.build], он учитывает URL для связанного объекта comment, принимая его как вложенный маршрут.

Это преимущество form_with над form_for

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...