레일즈에서 처음으로 더 큰 프로젝트를 진행하고 있습니다. RESTful API가 될 것입니다. 내가 우연히 만난 상황은 다음과 같이 설명 할 수 있습니다. 'Person'및 'Application'모델이 있습니다.레일 3 : 두 개의 단 하나의 중첩 된 리소스, 하나의 모델
class Person < ActiveRecord::Base
has_many :managed_applications, :class_name => "Application", :foreign_key => "manager_id"
has_many :owned_applications, :class_name => "Application", :foreign_key => "owner_id"
# other associations
has_many :adresses
end
class Application < ActiveRecord::Base
belongs_to :manager, :class_name => "Person"
belongs_to :owner, :class_name => "Person"
end
컨트롤러와 라우트를 어떻게 설계해야합니까? 다음과 같은 자명 한 리소스가 어떻게 작동합니까?
/applications/<id>/owner
/applications/<id>/manager
/people/<id>
문제는 "복수"응용 프로그램 자원에서 둥지 단수 소유자 및 관리자 자원 때, 모든 경로가 동일한 PARAMS으로, 동일한 'PeopleController의 행동에 결국한다는 것이다.
첫 번째 두 자원이 읽기 전용 작업의 관점에서 마지막 역할을하는 경우 (예를 들어 한 요청만으로 특정 응용 프로그램 관리자의 주소를 검색 할 수있는 경우) '보너스/응용 프로그램/<id>/소유자/주소 '). 그것도 권장되는 API 디자인입니까?
고마워요.
고마워요, 결국 저는 협회 자체를 자원으로 고려하여 실제로 해결했습니다. 나는 여기에서 새로운데, 내 질문을 편집하여 내 솔루션을 포함시키는 것이 일반적입니까? T. – user1241530
나는 여기 너무 새로운 :-). 그러나 나는 그것을 비밀로 유지하는 것보다 더하는 것이 낫다고 생각합니다. – Renra
@ user1241530 질문에 대한 유효한 답변이있는 경우 별도의 답변을 추가 할 수 있습니다. 대답이 그다지 좋지 않을 수도 있으므로 질문에 대답을 포함시키지 마십시오. 이 방법은 당신의 질문과 당신의 대답은 다른 표를 가질 것입니다. –