Это случается из-за того что после вызова ‘render’ в контроллере код не останавливается, а продолжает выполняться дальше (что является нормальным) и находится еще один ‘render’ что приводит к этой ошибке.
Есть 2 способа, что бы избежать эту ошибку:
- Использовать ‘render’ только 1 раз
- Использовать «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"
end
Code language: Ruby (ruby)