2013-08-05 4 views
2

는이 같은 레일에 일부 API를 만들려면레일 API 라우팅 중복

# programs 
    resources :programs, only: [:index, :show, :create, :update, :destroy] do 
    collection do 
     delete 'remove' 
    end 
    end 
    delete '/programs', to: redirect('/programs/remove') 

내가 거기 느낌 : ','학생 ','지금은 프로그램과 다른 사람을 생성하기 위해 다음과 같은 코드를 사용, '식료품 중복의 많은 재, 나는 당신이 반복 컨트롤러가 많은 경우 이러한 API를

+0

는'resources' 그냥 method--입니다 너 뭐 해봤 니? 하지만 '예외'라고 생각할 수도 있습니다. –

+0

이 부분을 살펴보십시오. http://guides.rubyonrails.org/routing.html#segment-constraints - 제약 조건이있는'/ : controller (/ : action (/ : id))'와 같은 일반적인 경로를 설정할 수 있습니다. 컨트롤러와 액션에 대해 – MrYoshiji

+0

컨트롤러로 모델을 캡슐화하는 방법을 생각하고 있습니다. 따라서 데이터베이스에서 데이터를 가져 오거나 저장하려면 컨트롤러에 정의 된 API를 사용할 수 있습니다. –

답변

0

를 생성하는 몇 가지 헬퍼를 만들 수 있습니다, 당신은 반복 할 수

[:teachers, :programs].each do |res| 
    resources res, only: [:index, :show, :create, :update, :destroy] do 
    collection do 
     delete 'remove' 
    end 
    end 
    delete "/#{res}", to: redirect("/#{res}/remove") 
end