저는 여전히 레일이 작동하지 않도록 노력하고 있습니다. 데이터를 입력하고 제출하여 양식을 저장하는 간단한 응용 프로그램을 만들려고합니다. 그러면 저장 될 것입니다. DB에. 나는 새로운 프로젝트를 시작하고 실행하여이 매우 간단있어 : 레일 컨트롤러에 메서드를 만들려고 시도합니다.
$ rails generate scaffold RSVP firstName:string lastName:string
지금 내가 양식을 통해 새 레코드를 추가 한 후 감사 페이지로 리디렉션합니다.
# GET /rsvps/thank_you
def thank_you
respond_to do |format|
format.html # thank_you.html.erb
format.json { render json: @rsvps }
end
end
이 줄 내 루트 파일에 있습니다 : :
나는 수동으로 rsvps_controller.rb 파일에 아래의 방법을 추가했습니다 내가 레이크 경로를 실행할 때
는resources :rsvps
내 질문은, , 나는 thank_you 메소드를위한 경로를 보지 못했다. 내 : rsvps 자원이 내 thank_you 경로를 선택해서는 안되며 라우트는 어떤 컨트롤러 메소드가 http 호출 (get, post, put 등)인지 어떻게 알 수 있습니까? 당신처럼 routes.rb 파일 뭔가가 있어야 컨트롤러에서 해당 작업을 명중하는 경로를 얻기 위하여
당신이 제안한'member' 행을 사용할 때, 내 레이크에서이 행을 보았습니다 : routes :'thank_you_rsvp GET /rsvps/:id/thank_you(.:format) rsvps # thank_you'. 왜 그것은': id'를 경로에 기대합니까? – Catfish
리소스 경로의 'member' 메소드는 "개별 레코드와 관련하여 사용됩니다"를 의미합니다. 따라서 ID는 레코드를 찾기 위해 필요합니다. ID를 원하지 않으면 (즉, "컨트롤러의 모든 레코드"에 적용하고 싶거나 개별 레코드와 관련이없는 경우), 두 번째 프레임 당'collection'을 사용해야합니다 예. 명확하게,'member'를 사용하여,': id'는 컨트롤러 메소드 자체 내에서'params [: id]'로 전달 될 것입니다. 하나의 rsvp에서 작동하거나 그 중 일부 또는 전부에 대해 작동하는 것의 차이점입니다. – sinisterchipmunk