[Ruby On Rails] Root 이탈_path! 중첩된 하위 항목 뷰에서 중첩된 상위 항목으로 방향변경:show
글에 관하여
메모입니다.
routes.rb에서 부자 관계를 맺을 때 하위 컨트롤러의redirect_기록 to의 작법.
내가 지금까지 끼워 넣은 하위 컨트롤러의create 동작, 업데이트 동작의 리디렉션 루트_path로 해결했습니다.
루트 이탈_path를 목표로 합니다.
전제 조건
상위 항목: contents
하위 레벨:descriptions
routes.rbroot to: 'contents#index'
resources :contents, only: [:index, :new, :create, :show, :edit, :update] do
resources :descriptions, only: [:new, :create, :edit, :update, :destroy]
위에서 말한 바와 같이, 하위 세대에 지정되지 않은 경우: show.
※ 편의를 위해 only 옵션으로 기술합니다.
rails routes↓
root_path에서 지정한 경우
descriptions_controller(前略)
def new
@description = Description.new
end
def create
@description = Description.new(description_params)
if @description.save
redirect_to root_path #ココです
else
render :new
end
end
def edit
end
def update
if @description.update(description_params)
redirect_to root_path #ココです
else
render :edit
end
end
(後略)
이렇게 하면 "redirect_toroot_path"를 통해 중첩된 부모 세대의 contents#index로 이동할 수 있습니다.
그러나 정보를 업데이트한 후 첫 페이지로 날아가는 것이 사용자에게 무슨 불편한가.
특별히 첫 페이지에서 업데이트된 정보로 클릭해서 몇 페이지를 옮겨야 합니다.
따라서, 루트 이탈_path를 하고 싶습니다.
루트 이탈_path시
descriptions_controller.rb def new
@description = Description.new
end
def create
@description = Description.new(description_params)
if @description.save
redirect_to content_path(@description.content_id) #ココです
else
render :new
end
end
def edit
end
def update
if @description.update(description_params)
redirect_to content_path(@description.content_id) #ココです
else
render :edit
end
end
root_path 설명 취소, content_path(@description.cont_id)로 변경되었습니다.
이러한 설명을 통해 "/contents/4/descriptions/new"와 "/contents/3/descriptions/edit"등 페이지에서 "/contents/1/"로 방향을 바꾸어 부모 쇼와 같은 동작을 할 수 있습니다.
사고 방법
하나하나 보다.
라우팅을 다시 확인합니다.
prefix를 주의하십시오. 콘텐츠가 적혀 있기 때문에redirect_to content_path로 쓰다.
descriptions_controller.rb(前略)
def create または def update
@description = Description.new(description_params)
if @description.save
redirect_to content_path #ココです
else
(後略)
위에서 설명한 대로 "content_path"로 기술하여 "/contents/"로 이동할 수 있습니다.
그래도 완전하지는 않아요.어떤 id에 맞는 페이지로 이전할지 기록해야 합니다.
id를 지정할 때의 요점은 다음과 같은 두 가지입니다.
상위 항목: contents
하위 레벨:descriptions
routes.rb
root to: 'contents#index'
resources :contents, only: [:index, :new, :create, :show, :edit, :update] do
resources :descriptions, only: [:new, :create, :edit, :update, :destroy]
위에서 말한 바와 같이, 하위 세대에 지정되지 않은 경우: show.※ 편의를 위해 only 옵션으로 기술합니다.
rails routes↓
root_path에서 지정한 경우
descriptions_controller(前略)
def new
@description = Description.new
end
def create
@description = Description.new(description_params)
if @description.save
redirect_to root_path #ココです
else
render :new
end
end
def edit
end
def update
if @description.update(description_params)
redirect_to root_path #ココです
else
render :edit
end
end
(後略)
이렇게 하면 "redirect_toroot_path"를 통해 중첩된 부모 세대의 contents#index로 이동할 수 있습니다.
그러나 정보를 업데이트한 후 첫 페이지로 날아가는 것이 사용자에게 무슨 불편한가.
특별히 첫 페이지에서 업데이트된 정보로 클릭해서 몇 페이지를 옮겨야 합니다.
따라서, 루트 이탈_path를 하고 싶습니다.
루트 이탈_path시
descriptions_controller.rb def new
@description = Description.new
end
def create
@description = Description.new(description_params)
if @description.save
redirect_to content_path(@description.content_id) #ココです
else
render :new
end
end
def edit
end
def update
if @description.update(description_params)
redirect_to content_path(@description.content_id) #ココです
else
render :edit
end
end
root_path 설명 취소, content_path(@description.cont_id)로 변경되었습니다.
이러한 설명을 통해 "/contents/4/descriptions/new"와 "/contents/3/descriptions/edit"등 페이지에서 "/contents/1/"로 방향을 바꾸어 부모 쇼와 같은 동작을 할 수 있습니다.
사고 방법
하나하나 보다.
라우팅을 다시 확인합니다.
prefix를 주의하십시오. 콘텐츠가 적혀 있기 때문에redirect_to content_path로 쓰다.
descriptions_controller.rb(前略)
def create または def update
@description = Description.new(description_params)
if @description.save
redirect_to content_path #ココです
else
(後略)
위에서 설명한 대로 "content_path"로 기술하여 "/contents/"로 이동할 수 있습니다.
그래도 완전하지는 않아요.어떤 id에 맞는 페이지로 이전할지 기록해야 합니다.
id를 지정할 때의 요점은 다음과 같은 두 가지입니다.
(前略)
def new
@description = Description.new
end
def create
@description = Description.new(description_params)
if @description.save
redirect_to root_path #ココです
else
render :new
end
end
def edit
end
def update
if @description.update(description_params)
redirect_to root_path #ココです
else
render :edit
end
end
(後略)
descriptions_controller.rb
def new
@description = Description.new
end
def create
@description = Description.new(description_params)
if @description.save
redirect_to content_path(@description.content_id) #ココです
else
render :new
end
end
def edit
end
def update
if @description.update(description_params)
redirect_to content_path(@description.content_id) #ココです
else
render :edit
end
end
root_path 설명 취소, content_path(@description.cont_id)로 변경되었습니다.이러한 설명을 통해 "/contents/4/descriptions/new"와 "/contents/3/descriptions/edit"등 페이지에서 "/contents/1/"로 방향을 바꾸어 부모 쇼와 같은 동작을 할 수 있습니다.
사고 방법
하나하나 보다.
라우팅을 다시 확인합니다.
prefix를 주의하십시오. 콘텐츠가 적혀 있기 때문에redirect_to content_path로 쓰다.
descriptions_controller.rb(前略)
def create または def update
@description = Description.new(description_params)
if @description.save
redirect_to content_path #ココです
else
(後略)
위에서 설명한 대로 "content_path"로 기술하여 "/contents/"로 이동할 수 있습니다.
그래도 완전하지는 않아요.어떤 id에 맞는 페이지로 이전할지 기록해야 합니다.
id를 지정할 때의 요점은 다음과 같은 두 가지입니다.
(前略)
def create または def update
@description = Description.new(description_params)
if @description.save
redirect_to content_path #ココです
else
(後略)
content_id.
따라서params의 실례 변수가 있음(@description)지정 (.)의 id(content_id)만 있으면 됩니다.
descriptions_controller.rb
(前略)
def create または def update
@description = Description.new(description_params)
if @description.save
redirect_to content_path(@description.content_id) #ココです
else
(後略)
마지막
나는 데이터의 흐름 등을 언어화하는 것은 매우 힘들다고 생각한다.
저는 프로그래밍 초보자입니다. 만약 주도면밀하지 못한 점이 있으면 지적해 주십시오.
참고문
Reference
이 문제에 관하여([Ruby On Rails] Root 이탈_path! 중첩된 하위 항목 뷰에서 중첩된 상위 항목으로 방향변경:show), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NedzumiNeko/items/df8629f12a89633ffc39
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Ruby On Rails] Root 이탈_path! 중첩된 하위 항목 뷰에서 중첩된 상위 항목으로 방향변경:show), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NedzumiNeko/items/df8629f12a89633ffc39텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)