복붙노트

[RUBY-ON-RAILS] 4 레일 : 모델의 네임없이 하위 경로에 레일 모델을 구성?

RUBY-ON-RAILS

4 레일 : 모델의 네임없이 하위 경로에 레일 모델을 구성?

이런 식으로 뭔가를 할 수 있을까요?

app/models/
app/models/users/user.rb
app/models/users/education.rb

목표는 / 응용 프로그램 / 모델이 더 나은 폴더,하지만 모델 네임 스페이스하지 않고 구성하는 것입니다.

레일 3에 대한 답이없는 질문은 여기에 있습니다 : 하위 폴더의 3.2.9 및 모델 레일.

네임 스페이스와 테이블 _ 이름을 지정합니다 (4 모델의 하위 폴더를 레일) 작동하는 것 같다,하지만 난 네임 스페이스없이이 작업을 수행 할 수.

해결법

  1. ==============================

    1.기본적으로 레일은 자동로드 경로 모델 디렉토리의 하위 폴더를 추가하지 않습니다. 어느 단지 네임 스페이스 모델을 찾을 수있는 이유 - 네임 스페이스에 볼 수있는 서브 디렉토리를 조명한다.

    기본적으로 레일은 자동로드 경로 모델 디렉토리의 하위 폴더를 추가하지 않습니다. 어느 단지 네임 스페이스 모델을 찾을 수있는 이유 - 네임 스페이스에 볼 수있는 서브 디렉토리를 조명한다.

    자동로드 경로에 응용 프로그램 / 모델의 모든 하위 폴더를 추가하려면 설정 / application.rb에 다음을 추가합니다

    config.autoload_paths += Dir[Rails.root.join("app", "models", "{*/}")]
    

    더 복잡한 응용 프로그램 / 모델 디렉토리 함께 응용 프로그램의 모든 하위 폴더를 globing의 위의 방법이있는 경우 또는, / 모델이 제대로 작동하지 않을 수 있습니다. 이 경우에, 당신은 좀 더 명시 적 인 만 지정하는 하위 폴더를 추가하여이 문제를 얻을 수 있습니다 :

    config.autoload_paths += Rails.root.join("app", "models", "<my_subfolder_name1>")
    config.autoload_paths += Rails.root.join("app", "models", "<my_subfolder_name2>")
    

    레일 4.1로, 응용 프로그램 생성기는 기본적으로 config.autoload_paths 포함되지 않습니다. 그래서, 위에서 정말로에서 설정 / application.rb 속해 않습니다 것을.

    대신 {**} {이용 * /} 위 코드에서 수정 자동로드 경로 예. 이에 대한 자세한 내용은 muichkine의 코멘트를 읽어 보시기 바랍니다.

  2. from https://stackoverflow.com/questions/18934115/rails-4-organize-rails-models-in-sub-path-without-namespacing-models by cc-by-sa and MIT license