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
이제 삭제 액션이 실행되면 이전 페이지로 이동하게 됩니다.
코드를 수정하고 다시 실행해보니 삭제하기 버튼을 누른뒤 인덱스화면으로 가는 것을 확인할 수 있었습니다!