2013-04-01 3 views
0

기본 앱이 있으며 meeting_id와 participant_id (meeting_participants의 열)를 기반으로하는 meeting_participants 테이블의 레코드를 삭제하려고합니다.컨트롤러에 대한 경로 변경

내 meeting_participants_controller에서 destroy 작업을 변경하여 meeting_id 및 participant_id를 수락하고 적절한 레코드를 삭제했습니다.

def destroy 
    session[:return_to] = request.referer 

    @meeting_participant = MeetingParticipant.find_by_meeting_id_and_participant_id(params[:meeting_id], params[:participant_id]) 
    @meeting_participant.destroy 

    redirect_to session[:return_to] 

end 

은 내가 다음 코드를 사용하여 # 컨트롤러를 파괴 meeting_participants 전화를 사용하고자하는 뷰에 버튼이 있습니다. 대신 id 매개 변수 :

<table> 
    <% @participants.each do |participant| %> 
     <tr> 
     <td><%= participant.name %></dt> 
     <td> 
      <% participant.meetings.each do |meeting| %> 
      <%= meeting.name %> 
      <%= button_to("Remove Meeting", 
              {:controller => "meeting_participants", 
              :action => "destroy", 
              :meeting_id => meeting.id, 
              :participant_id => participant.id }, 
          :method => :delete, 
          :confirm => "Are you sure?") %> 
      <br/> 
      <% end %> 
     </td> 
     </tr> 
    <% end %> 
    </table> 

은 내가 성공적으로 컨트롤러에 대한 올바른 participant_id 및 MEETING_ID 매개 변수를 보내고 있지만 meeting_participants 번호 내 경로 하나를 기대하고 파괴하기 때문에 나는 "아니 경로 일치"오류가 발생하고 있다고 생각합니다. 갈퀴 노선은 ...

meeting_participant DELETE /meeting_participants/:id(.:format)  meeting_participants#destroy 

내 경로를 변경하는 방법에 대해 알고있는 사람이 있습니까? 아니면 더 나은 방법이있을 수도 있습니다. 나는 경로가 매우 혼란 스럽다는 것을 안다.

감사합니다.

내 routes.rb 파일은

MyApp::Application.routes.draw do 
    resources :meeting_participants 

    resources :participants 

    resources :meetings 

end 
+0

routes.rb를 게시 할 수 있습니까? 여기에서 들어오는 요청의 매개 변수를 변경해야합니다. –

답변

1

아마 그 요청을 처리 할 수있는 길을 만들 것입니다 .... 같은 아마 뭔가 :

match '/delete_meeting_participants/meeting/:meeting_id/participant/:participant_id' => 'meeting_participants#delete_meeting_participants', :as => 'delete_meeting_participants'

그런 다음 컨트롤러에서 당신은 당신의 파괴 행동에 현재 같은 논리가 delete_meeting_participants라는 조치를 할 것입니다. 당연히 새로 생성 된 작업의 이름으로 button_to을 업데이트해야합니다.

+0

안녕하세요 드와이트, 좋은 해결책 같아요. 나는 그것을 적용하려고 시도했지만 오류'config/routes.rb : 8 : syntax error, unexpected tIDENTIFIER, expecting keyword_end'를 얻습니다. – user2227587

+0

내가 혼란스러워하기 때문에 docs 경로를 다시 살펴 보겠습니다. – user2227587

+0

감사합니다. 마지막 작은 따옴표를 잊어 버린 것 같습니다. 내 대답을 업데이트했습니다. 아마 그 원인이 될 수 있습니다. –

관련 문제