respond_with
을 통합하여 컨트롤러를 건조하려고합니다. 레일 퀘스트의 일부 지시에 따라 수행 할 때 은 대부분입니다. 문제는 리소스를 삭제 한 후 리디렉션에 있습니다 ... people_url
...로 리디렉션되어야하지만 대신 특정 리소스를로드하려고 시도합니다.레일 3 : respond_with를 사용하여 리소스를 삭제하는 올바른 방법
샘플 코드이 같은 모습을 발견 ...하지만 그냥 삭제 리소스로드하려고 실패 : 내가 기대했던 (비록 하나가 작동하지 않습니다 respond_with(@people)
에 마지막 라인을 변경
# app/controllers/people_controller.rb
class PeopleController < ApplicationController
respond_to :html, :xml
def destroy
@person = Person.find(params[:id])
flash[:notice] = 'Successfully deleted person.' if @person.destroy
respond_with(@person) # <== spec fails here
end
end
을 그것은 것 ...) 많은 주위를 파고 나는 사물이 작동하는 거죠 일을 이해하기 위해 최선을 다하고 후
(적어도 그렇게 나타납니다 사양이 통과 응용 프로그램 기능을)이 함께 :..
respond_with(@person, :location => people_url) # <== now it works
이렇게 이것을 처리하는 올바른 방법입니까? 그것은 respond_with 뒤에있는 모든 '마술'로 삭제 후 자신에게 리다이렉트 할 수 없다는 것을 알 것인가? 나도이 (7 가지 기본 RESTful CRUD 메소드 중 하나)은 매우 기초적이고 기초적이므로 많은 예제가 풍부하다는 것을 알았지 만, 작동하지 않는 코드를 제안하는 것을 제외하고는 많은 것을 찾을 수 없었습니다. 나를.
호핑 누군가가 여기에서 발생하는 레일 '마술'을 이해하도록 도와 줄 수 있으므로 길 아래로 날 불면 놀라지 않을 것입니다.
감사합니다.하지만 슬프게도 여전히 혼란 스럽습니다. respond_with (head : ok)'라고 하시겠습니까? 왜냐하면 그건 효과가 없기 때문이죠. 나는'respond_to' 블록 안에있을 때만'format.xml {head : ok}'에 익숙하다. 이 경우에는'respond_with'를 어떻게 사용하는지 잘 모르겠습니까?!? – Meltemi
@Meltemi - Ryan Bates의 ASCIICast를 확인하십시오. http://asciicasts.com/episodes/224-controllers-in-rails-3 – dennismonsewicz