2014-01-12 3 views
1

현재 개체와 같은 일반 리소스를 가진 레일 응용 프로그램을 작성하고 있습니다. 그러나 내 자원을 동기화 할 수있게 만들고 싶습니다. 내 웹 응용 프로그램은 웹 오프라인 저장소를 사용하여 서버의 결과를 캐시합니다 (사용자가 동기화하는 동안 서버의 데이터를 수정할 수 없음). 내가 동기화 모든 종류의 작업을 수행하고 단순히 배열을 반환하지 않는 일반 가져 오는 방법을 갖고 싶어 할 때까지레일 3 리소스 라우팅 사용자 정의/수정

{ 
    :new => [...] 
    :updated => [...] 
    :deleted => [...] 
} 

이 잘하고 좋은 : 나는 서버에서 가져올 때, 같은 해시 응답이 반환 모델

이제 내 질문은 내 routes.rb 파일에 경로를 설정하여 synced_indexindex 경로가있는 메서드를 만들고 싶습니다. 이상적으로, 나는 이런 식으로 뭔가를 할 수있을 것입니다 : 생성 될 것입니다 일반 자원 루트 플러스 synced_index 같은 몇 가지 추가 사람의 다음

synced_resources :plans 

그리고 모두를. 가장 좋은 방법에 대한 아이디어가 있습니까?

참고 : do...end 구문으로 리소스를 수정할 수 있다는 것을 알고 있지만 많은 모델에서해야하므로 기능으로 추상화하고 싶습니다.

답변

2

쉽게 편안 경로에 더 많은 동사를 추가 할 수 있습니다

resources :plans do 
    get 'synced_index', on: :collection 
end 

확인 guides을이에 대한 자세한 내용은. ActionDispatch에 포함하는 모듈 방법 위의

def synced_resources(*res) 
    res.each do |r| 
    resources(r) do 
     get 'synced_index', on: :collection 
    end 
    end 
end 

랩 :: 라우팅 : : :

이 유사하다 여러 경로를 가지고 있다면, 반드시, 당신은 'synced_resources'도우미를 추가 할 수 있습니다 매퍼.

+0

경로를 그리기 전에 실행해야하기 때문에 필요에 따라 초기화 프로그램을 끝내야합니다. 감사! –