@Sworg

Как передать объект в действие контроллера?

Есть контроллер постов и контроллер комментариев.
У каждого поста много комментариев соответственно.
В index вьюхе контроллера постов вместе с каждым постом есть форма для добавления комментария к конкретному посту.
Я сделал хелпер, который генерит пустой объект для комментариев (post.comments.build), чтобы передать его в форму.
Но как сделать так, чтобы в create экшне контроллера комментариев я создавал комментарии к конкретному посту?
Ведь мы же не можем искать пост по id, например, так: post = Post.find_by(id: params[:id]), потому что никакого id по сути никуда не передается.
Спасибо
  • Вопрос задан
  • 2338 просмотров
Решения вопроса 2
viktorvsk
@viktorvsk
Вы сделали костыль с hidden field
Что бы было нормально, нужно посмотреть, что такое nested resources routing
Ответ написан
Комментировать
@Sworg Автор вопроса
Все решилось добавлением hidden_field в форму с параметром :post_id.
Поиск велся по params[:comment][:post_id]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@tomcat1911
Тут 4.3 пункт почитайте внимательно.

Если кратко, то
@article = Article.find(params[:article_id])
@comment = @article.comments.create(comment_params) #strong params

примерно так.

Насколько известно, id поста будет передаваться так params[:post_id].
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы