저는 현재 한 번의 업데이트 작업으로 작성자, 번역, 관련 기사 등 모든 기사 관계를 관리하는 기사 컨트롤러를 보유하고 있습니다.레일에서 편리하게 MVC를 사용합니다.
페이지에는 검색 및 정렬 기능, CRD 작업, 새 연결 만들기 및 기존 연결 레코드 관리 양식이 포함 된 일련의 "목록"이 포함되어 있습니다.
이 모든 것들은 ArticleController 편집 및 업데이트 작업과 각 목록의 부분 템플릿 묶음으로 관리됩니다.
관련 검색 레코드를 찾기 위해 추가 검색 테이블을 추가하여 기능을 더 확장하고 싶습니다. 나중에 다른 기능을 추가하겠습니다.
이런 식으로 (한 편집 페이지에서 모든 협회 관리) 편리하다고 생각합니다. 따라서 다음과 같이 각 목록에 대한 특수 컨트롤러를 만드는 것이 더 좋습니다.
/articles/1/edit/authors
그리고이 컨트롤러의 이름은 무엇이되어야합니까? ArticleController 또는 PeopleController 또는 ApplicationController의 자식이어야합니까?
아니면 모든 괜찮 나는 편집증입니까?) 모든 MVC 조건이 sctictly 충족
UPD. 질문 :
하나의 컨트롤러에서 모든 관계를 관리하는 것이 좋습니까? 관계를 추가/삭제할뿐만 아니라 @ article.authors.find_or_create_by_name (name)과 같이 newone을 생성하는 경우도 있습니다. 보기의 관계는 단순히 선택 태그가 아닙니다! 자체 검색, 정렬, 페이지 매김 기능을 갖춘 완벽하게 보호 된 테이블입니다.
는 "subcontroller"를 만드는 방법 : 우리가 ArticleController 및 편집 작업이있는 경우 누군가가 나를 이해 해달라고하면는 다른 방법으로 문의 할 수 있습니다. ArticleController는 Article 모델의 필드 만 관리해야합니다. 그리고 많은 수의 하위 컨트롤러가 관계를 관리해야합니다.
왜 내가 필요합니까? AJAX를 이러한 페이지에 추가 할 수 있습니다. 심각한 문제는 발생하지 않지만 모든 AJAX 호출에서 ArticleController.update/edit 작업을 쿼리하면 모델에 대한 Arel 관계 구축과 같은 일종의 unnessesary 작업을 수행 할 수 있습니다. 나는 일을 작은 독립적 인 조각으로 나누고 모든 것을 할 수있는 거대한 한 명의 컨트롤러를 만드는 것을 좋아하지 않습니다.
물론 물론 추가/제거와 같은 경로를 모델에 포함 할 수 있습니다. 컨트롤러에서 나는 단지 @related_articles = @ article.related_articles 또는 @ article.related_articles << article 또는 @ article.related_articles.delete (article) 등등 – AlexParamonov
중첩 된 리소스가 실제로 도움이된다 – AlexParamonov