Переслать пользователя назад к сообщению после добавления комментария - PullRequest
0 голосов
/ 17 декабря 2011

Это, вероятно, довольно простая вещь - у меня есть сайт с новостной лентой, которая показывает различные сообщения. Есть и другие страницы, на которых аналогично отображаются сообщения. Комментарии могут быть добавлены к этим сообщениям непосредственно с любой из этих страниц.

Что мне нужно сделать, так это перенаправить пользователя обратно на URL, с которого он пришел, после добавления комментария и на конкретное сообщение, к которому он прокомментировал (каждое сообщение имеет идентификатор post-#{post.id}, поэтому я ' Мне просто нужно прикрепить #post-2 или что-то еще к URL.

Если сообщение не может быть сохранено по какой-либо причине, я также хотел бы, чтобы контент, который отправил пользователь, был предварительно заполнен в поле для комментариев после перенаправления.

Как я могу сделать эти две вещи? Первый самый важный .. Мне нужно будет сохранить URL-адрес, с которого приходит пользователь в сеансе, в новом действии и перенаправить на него в действии создания? Как я могу получить URL?

Кстати, я на Rails 3.1.

Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 17 декабря 2011

Вы можете использовать redirect: back , который отправит пользователя обратно на страницу, с которой был отправлен запрос

redirect_to :back
1 голос
/ 17 декабря 2011

Предполагается, что Комментарий - это ресурс, вложенный в Post в вашей маршрутизации (/ posts / 123 / comment / new):

def create
  comment = Comment.new(params[:comment])
  if comment.save
    redirect_to post_path(comment.post)
  else
    redirect_to new_post_comment_path(params)
    # or maybe you have the comment form on the Post#show page
    # redirect_to post_path(params)
  end
end
...