2014-04-28 4 views
0

깊은 루트를 정리하고 큰 입력 덕분에 얕은 루트로 대체했습니다. 나는 커스텀 메쏘드를 작동시키고 무언가에 점들을 연결하지 못하게하려고 노력하고있다. 내 routes.rb는이 라인을 가지고 그것을 완료 '완전한/ID 이벤트 /'이벤트에 이벤트를하고 처리를 게시 할중첩 된 얕은 리소스의 메소드에 대한 레일 경로

resources :members, shallow: true do 
    resources :events, shallow: true do 
    get 'complete' => 'events#complete' 
    resources :items 
    end 
end 

내 목표는 를 호출 할 수있다. 위의 경로는이 다음 경로를 추가합니다

event_event_complete GET /events/:event_id/complete(.:format)  events#complete 
     member_events GET /members/:member_id/events(.:format)  events#index 
        POST /members/:member_id/events(.:format)  events#create 
    new_member_event GET /members/:member_id/events/new(.:format) events#new 
      edit_event GET /events/:id/edit(.:format)    events#edit 
       event GET /events/:id(.:format)     events#show 
        PATCH /events/:id(.:format)     events#update 
        PUT /events/:id(.:format)     events#update 
        DELETE /events/:id(.:format)     events#destroy 

현재의 컨트롤러 액션 : 내가 잘못에 넣어 것 같은

def complete 
    @event = Event.find(params[:id]) 
end 

이 보인다 : 나는 그것이 있어야 생각하는 방법

def complete 
    @event = Event.find(params[:event_id]) 
end 

event를 다음과 같이 전달하기 때문에 무언가를 배치하거나 놓치기 : id 대신 : event_id. 모든 것이 작동하지만 이것은 더 어리석은 것처럼 보일 것입니다. 그래서 나는 바보 같은 일을하고 있다고 확신합니다.

미리 도움을 청하십시오! 아래

마크

답변

1

업데이트하여 노선 :

resources :members, shallow: true do 
    resources :events, shallow: true do 
     member do 
     get 'complete' => 'events#complete' 
     end 
     resources :items 
    end 
    end 

이 방법 당신은 complete 행동 노선에 대한 params[:id] 대신 params[:event_id]에 이벤트 ID를받을 것입니다.

+0

이 작업을 수행. 다시 한 번 고맙습니다. 도움을 주셔서 감사합니다. – MechDog

+0

다시 도와 줘서 기뻐 :) –

0

마법처럼 일했다 @event = Event.find(params[:id])

resources :members, shallow: true do 
    resources :events, shallow: true do 
     member do 
     get 'complete' => 'events#complete' 
     end 
     resources :items 
    end 
    end 
+0

내 대답과 어떻게 다릅니 까? –

+0

나는 당신도 같은 대답을 올리는 것을 몰랐다. 당신은 2 분 – jimagic

+0

에 의하여 나의 포스트를 때려 눕히십시오 ok. 때때로 그것은 일어난다. –

관련 문제