2012-08-30 2 views
0

저는 리팩토링을 위해 찾고있는 레일 프로젝트를 상속 받았습니다. 이 앱은 ActiveRecord를 매우 가볍게 사용합니다. 대부분의 호출은 REST 엔드 포인트에 대한 것입니다. 현재이 호출을 수행하는 클래스는 lib 디렉토리에 있습니다. 나는 posts regarding the lib directory 몇 개를 읽었으며 원래 개발자가 모델 디렉토리를 사용하지 않은 이유에 대해 궁금해하고 있습니다. (몇 가지 이유가 있어야합니다.) 그리고 이러한 클래스를 models 디렉토리로 옮기는 데 대한 단점은 무엇입니까?수업은 어디에 있습니까? 모델 또는 lib 디렉토리?

이러한 클래스는 모델 디렉토리에 있어야하며 응용 프로그램의 핵심이므로 "느낀다".

답변

1

그게 내가하고있는 일이다. 데이터베이스 작업을 담당하는 모든 클래스를 models 폴더에 넣는다. 라이브러리 또는 클래스 , 이는 실제로는 데이터베이스에 의존하지 않고 다른 프로젝트에서 사용할 수 있습니다. 그러면 lib 폴더에 넣을 수 있습니다.

+0

나는이 접근 방식에 동의하지만 15-ish 클래스 중 하나만 ActiveRecord에 의해 지원되지만 모두 REST API를 사용하여 CRUD와 유사한 로직을 포함합니다. –

1

클래스가 모델과 관련이없는 경우 (ActiveRecord) 모델을 더 구체적으로 모델링하는 것이 좋습니다.하지만 모델에 넣으면 동봉 된 폴더에 넣으십시오.

응용 프로그램 -> 모델 -> 설정 내부 엔드 포인트 -> application.rb는 그것을

config.autoload_paths += %W(#{Rails.root}/app/models/ar) 

를로드하는 코드의 라인을 넣어 또는 평면 밖으로 별도의 디렉토리 응용 프로그램에 넣을 수 있습니다 - > endpoints

이유는 REST 엔드 포인트가 분리되어 있기 때문입니다. 응용 프로그램에서 더 많은 것을 만들 계획이라면 비즈니스 논리가 더 깨끗하고 모듈화되어 덜 혼란 스러울 것입니다.

관련 문제