문제

처음부터 Rails는 네임 스펙트 한 모델에 문제가있었습니다. 시간이 지남에 따라 거의 모든 사람들이 그것을 사용하는 것을 포기했습니다. 나 자신이 포함되어있다.

Rails 2.3이 나오면 상황에 대한 업데이트를 원합니다. 내가 염두에 두는 질문은 다음과 같습니다.

  • 우선, 가서 좋은가요?
  • 표 이름 지정, 따라야 할 규칙은 무엇입니까?
  • 연관성, 최소한의 말로 그들을 선언하는 방법은 무엇입니까? 외국 키 열을 지정하는 방법은 무엇입니까?
  • 자동 요구 사항, 모델 파일을 네임 스페이스와 일치하는 서브 디르에 넣으면 작동합니까? 또는 이름을 지정하고 파일을 배치하는 방법은 무엇입니까?
  • 생성, 모델 생성기가 네임 스페이스를 성공적으로 올바르게 처리합니까?
  • 생성, 컨트롤러가 포함 된 스캐 폴드 생성기는 어떻습니까?
  • 비 호환성/기발함이 알고 있어야합니까?
도움이 되었습니까?

해결책

내가 문제에 대해 본 최고의 글은 엄격하게 무형. 내 아는 한 2.3은 어떤 문제도 해결하지 않았으므로 여전히 신뢰할 수 없음을 의미합니다.

다른 팁

우리는 최근 회사 내에서 이것에 대해 큰 논쟁을 벌였습니다. 하루가 끝날 무렵, 데이터베이스 내부에 테이블을 네임 스페이스 할 수 없다면 모델을 네임 스페이스하는 것은 의미가 없다고 생각했습니다. 우리는 모델 (user, userAddress, userEmailAddresses)을 접두사에 넣고 사용자 디렉토리에 넣은 다음 사용합니다.

config.load_paths << "#{RAILS_ROOT}/app/models/users"

모델을로드합니다. 우리 모델의 진실성을 제어하기 위해 우리는 이것을 자주 수행합니다.

has_many :addresses, :class_name => "UserAddress"

생성 할 때 네임 스페이스 (스크립트/생성 Model userAddress)가없는 것처럼 생성 한 다음 수동으로 사용자 디렉토리에 복사하십시오.

어깨를 으쓱하다. 결국이 모든 것이 실제로 당신에게 제공하는 것은 더 깨끗한 디렉토리 구조이며, 실제로 나와 같은 VIM 사용자에게는 더 많은 어려움이지만 TextMaters에게는 좋습니다.

나는 여전히 그것으로부터 멀리 떨어져있을 것입니다. 코드에서 번거 로움과 간결함의 손실과 상실을 고려할 때 얻은 모든 것 (솔직히 무엇이 될지 확실하지 않습니다).

내 최신 앱에는 87 개의 리소스가 있으며 모든 곳에서 관리 기능이 포함되어 있습니다. 네임 스케이싱이 필요하지 않습니다. IMHO.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top