Рубрики
Ruby on Rails Программирование

Как исправить ошибку Can only or redirect once per action

Это случается из-за того что после вызова ‘render’ в контроллере код не останавливается, а продолжает выполняться дальше (что является нормальным) и находится еще один ‘render’ что приводит к этой ошибке.

Есть 2 способа, что бы избежать эту ошибку:

  1. Использовать ‘render’ только 1 раз
  2. Использовать «and return». Внимание! Используйте and вместо && return, так как это не будет работать из-за приоритета операторов!
def show
  @book = Book.find(params[:id])
  if @book.special?
    render action: "special_show" and return
  end
  render action: "regular_show"
endCode language: Ruby (ruby)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *