Как убедиться, что идентификатор передается в редиректе - PullRequest
0 голосов
/ 26 мая 2018

На странице «Испытания» show.html.erb перечислены все Puns для этого вызова, и под каждым Pun я отображаю все комментарии этого Pun.Под каламбуром находится кнопка «Добавить комментарий».

Эта страница формы «Добавить комментарий» имеет URL:

http://localhost:4000/puns/109/comments/new?challenge_id=22&user_id=2

Так что я вижу, что используется challenge_id

Моя проблемапосле отправки комментария (который успешно опубликован) я не могу понять, как перенаправить на страницу показа вызовов.

def create
user_id = current_user.id if current_user
respond_to do |format|
    if @pun.comments.create!(comment_params.merge(user_id: user_id, pun_id: @pun.user_id))
      format.html { redirect_to @challenge }
    else
      format.html { render :new, notice: 'Comment not saved. Something went wrong.' }
      format.json { render json: @challenge.errors, status: :unprocessable_entity }
    end
  end
end

Я получаю ошибку

ActionController::ActionControllerError in CommentsController#create
Cannot redirect to nil!

1 Ответ

0 голосов
/ 26 мая 2018

ОК, я понял это.Я не давал идентификацию вызова на пути.

Ответ:

redirect_to challenge_path(@pun.challenge_id)
...