레일을 처음 사용하고 특정 애플리케이션을 가장 잘 라우팅하는 방법에 대한 질문이 있습니다. 레거시 데이터베이스를 사용하여 스키마가 이미 설정되어 있고 약간 복잡합니다. 앱의 레이아웃에는 '사용자'가 포함 된 상단 네비게이션 바가 포함되어 있으며, 특정 '사용자'의 경우 다양한 형태를 표시/편집 할 수있는 또 다른 탐색 바가 있습니다. 예를 들어 특정 '사용자'가 쿼리되면 '일반 정보'및 '계정 정보'에 대한 별도의 양식이 있습니다.특정 설정을위한 레일 경로
지금 설치 프로그램은 최상위 레벨에 해당하는 'users'네임 스페이스를 갖는 것입니다 네비게이션과 네임 스페이스에는 네비게이션 수준 인 '일반', '프로젝트'등이 있습니다.이 설정을 사용하면 두 번째 수준의 네비게이션 수준에서 선택한 각 양식에 약간의 차이가있는 자체 컨트롤러가 있습니다. ID가이 합리적인 보이는가에 '사용자'
/users/general/:id
/users/general/:id/edit
/users/account/:id
/users/account/:id/edit
을 속하거나 사람이 중첩 된 탐색 설정을 처리하는 방법에 대한 다른 아이디어가 않습니다
namespace :users do
resources :general, :project
end
이 어디 나 다음 URL을 가질 수 있습니다 RESTful 방식으로? 레거시 데이터베이스는 '일반', '계정'모델 또는 DB 테이블이 없다는 점에서 복잡합니다. 각 양식에 대해 '사용자'모델과 연관성이있는 여러 모델/표를 가져와야합니다. '일반적인'모델을 가지고 있지 않은 동안 '일반'컨트롤러를 갖는 것은 나 같은 것을 방해하는 것과 같은 매우 난간처럼 보이지 않습니다.
이것은 어두운 곳에서 촬영 한 것이지만 "일반"속성이 CRUDed 될 때 다양한 기본 테이블에서 작업을 관리하는 "일반"모델 (ActiveRecord :: Base의 하위 클래스가 아님)을 만든 것으로 간주 했습니까? 기본 테이블은 ActiveRecord :: Base에서 상속 받아서 영속성을 관리 할 수 있으며, 일반 모델은 db의 레코드를 유지 관리합니다. 일반 컨트롤러는 일반 클래스의 인스턴스를 AR 모델과 비슷하게 처리하지만, CRUD하면 모델 로직이 db에서 실제로 일어나고있는 것을 관리하고 관리합니다. –