2010-01-24 4 views
2

저는 레일스에 비교적 익숙하며 최근에 프로젝트를 시작하고 실제로 빠르게 진행하는 데 도움이되는 authlogic과 같은 유용한 보석을 발견했습니다. 그러나 필자는 플러그인에 의존하는 모델, 뷰 및 컨트롤러 파일을 어디에 둘 것인지 궁금해했지만 프로젝트의 핵심 개념입니다.레일스 : 플러그인 파일을 어디에 두는 지

예를 들어,이 vendor/ 디렉토리 내부의 플러그인 사용자, 역할, 세션, 등 모델 및 관련 컨트롤러를 배치하는 것이 좋습니다, 아니면 루트 model/, view/ 내부를 배치해야하고, controllers/ 디렉토리 각각 ?

답변

2

플러그인에 종속 된 심지어 모델/뷰/컨트롤러는 다른 코드와 함께 app/model, app/viewapp/controllers 디렉토리에 보관해야합니다.

"구조적"이유는 모든 파일의 대부분이 여전히 응용 프로그램에만 적용된다는 것입니다. 결국 사용자에게 필드를 추가하거나 User 모델에 has_many 문을 추가하게 될 것입니다. app 디렉토리의 나머지 핵심 애플리케이션 코드와 함께 모든 코드를 원할 것입니다.

"기능적"이유는 해당 플러그인과 관련된 코드의 경우 vender/plugins이며 개발 중에 다르게 취급된다는 것입니다. 예를 들어, 새 플러그인을 추가하면 개발 모드에서 자동로드되지 않습니다. 따라서 핵심 파일이있는 경우 개발 모드에서도 자동으로 다시로드되지 않습니다.

+0

두 가지 관점 모두에서 많은 의미가 있습니다. 이유는 내가 붙어 있었기 때문에 이러한 플러그인을 쉽게 수정하거나 언어 기능으로 인해 루비 확장, 그리고 플러그인과 사용자 정의 코드 사이의 라인 나를 위해 흐려지기 시작했다. – Anurag

+0

@Anurag 혼란 스러울 수 있습니다. 좀 더 혼란 스럽다면 * your * app에 대한 코드를 작성한다면, 그것을'app' 디렉토리에 보관하는 것입니다. * core plugin *이 작동하는 방식을 수정하는 경우 특별한 폴더/파일 이름 지정 패턴에 따라 일반적으로 이러한 변경 사항을'lib'에 넣으므로 실제 플러그인을 소스에서 업그레이드 할 수 있으며 변경 사항은 여전히 ​​분리되어 있습니다. –

1

당신이 쓰는 것은 표준 디렉토리에 있어야합니다. 벤더가 제공 한 코드에는 벤더를 사용하십시오.

1

머리가 위로 올라가는 것처럼 당신은 처음에 새로운 주제에 대한 railscasts를 잘못 보는 것이 어렵습니다. 그는뿐만 아니라 일부 포함하는 액세스 제어가 : Declarative AuthorizationCanCan

라이언 베이츠는 두 authlogicauthlogic with OpenID을 덮고 인증에 비해 승인 후 다음 단계의 기대에 있습니다.

관련 문제