[Ruby] undefined method `back_url'

밤새·2024년 3월 13일
0

에러 모음

목록 보기
14/17

⚠️ 에러 이름

NoMethodError in HomeController#delete
undefined method `back_url' for #<HomeController:0x00007f6d642ad810>

🤔 에러 내용 및 원인

🔍 에러 내용

def delete
		Post.destroy(params[:post_id])
		
		redirect_to :back
end

위의 코드로 입력했을 때 나온 에러

🔍 에러 원인

gpt : 이 오류는 일반적으로 이전 페이지로 이동하기 위해 redirect_back 메소드를 사용할 때 발생합니다. 이 오류의 주요 원인은 라우트나 경로 설정이 올바르게 이루어지지 않았을 때 발생하는 경우가 많습니다.

에러 해결 방법

우선, config/routes.rb 파일에서 루트 경로와 필요한 다른 경로들을 정의를 해줍니다.

Rails.application.routes.draw do
  root 'home#index'
  resources :posts
end

위의 코드는 루트 경로를 home#index 액션으로 설정하고, /posts 경로에 대한 라우트를 설정합니다.

그리고나서, redirect_back 메소드를 사용하여 이전 페이지로 이동할 때 경로를 올바르게 지정해주었습니다.

def delete
		Post.destroy(params[:post_id])
		
		redirect_back(fallback_location: root_path)
end

이제 삭제 액션이 실행되면 이전 페이지로 이동하게 됩니다.

코드를 수정하고 다시 실행해보니 삭제하기 버튼을 누른뒤 인덱스화면으로 가는 것을 확인할 수 있었습니다!

profile
프로젝트를 통해 배운 개념이나 겪은 문제점들을 정리하고, 회고록을 작성하며 성장해나가는 곳입니다 😊

0개의 댓글