[번역] 레일:: Railtie

3643 단어 Rails
원문:http://api.rubyonrails.org/classes/Rails/Railtie.html
레일 티 는 레일 스. 프레임 의 핵심 은 레일 스 의 시작 과정 을 확장 하거나 수정 하기 위해 몇 개의 갈 고 리 를 제공 합 니 다.
Rails 의 모든 주요 구성 요 소 는 하나 입 니 다. Railtie, 예 를 들 어 Action Mailer, Action Controller, Action View and Active Record.그들 은 모두 자신의 시작 을 책임 집 니 다. 이 때문에 레일 스 자체 가 어떠한 구성 요소 의 갈고리 에 도 참여 하지 않 고 다른 구성 요소 가 레일 스 의 기본 설정 을 언급 할 수 있 도록 합 니 다.
 
Rails 확장 플러그 인 을 개발 하려 면 사용 할 필요 가 없습니다. 레일 티, 하지만 레일 스 가 시작 되 는 전후 와 프레임 의 상호작용 이 필요 하 다 면, 레일 티 가 필요 로 하 는 것.
예 를 들 어 확장 플러그 인 이 다음 과 같은 일 을 할 때 필요 합 니 다. Railtie 의:
  • 실행 기 만 들 기
  • 응용 프로그램 에 Rails 프레임 워 크 를 설정 합 니 다. 예 를 들 어 생 성기 (generator)
  • 를 만 듭 니 다.
  • 추가 config. * 설정 환경 으로 이동 합 니 다.
  • 는  ActiveSupport::Notifications  창설 subscriber
  • rake 퀘 스 트 추가
  • 당신 의 Railtie
    레일 티 를 사용 하기 위해 서. 확장 Rails, 확장 플러그 인의 네 임 스페이스 에 계승 자 를 만들어 야 합 니 다. 
    Rails::Railtie   의 Railtie 클래스, 이 클래스 는 레일 스 의 시작 과정 에서 불 러 와 야 합 니 다.
    다음 예 는 확장 플러그 인 을 보 여 줍 니 다.
     
    # lib/my_gem/railtie.rb
    
    module MyGem  
    
      class Railtie < Rails::Railtie  
    
      end
    
    end
    
    # lib/my_gem.rb
    
    require 'my_gem/railtie' if defined?(Rails)
    
    

       
    시동기 
    Initializers
    너의 Railtie 에서 시작 단 계 를 Rails 시작 과정 에 추가 합 니 다. 아래 block 만 만 들 면 됩 니 다.
    class MyRailtie < Rails::Railtie  
    
      initializer "my_railtie.configure_rails_initialization" do   
    
        # some initialization behavior  
    
      end
    
    end
    
    

      
    인 자 를 지정 하면 block 도 받 을 수 있 습 니 다. 응용 프로그램 object, 사용 할 필요 가 있 습 니 다. 애플 리 케 이 션 설정 middleware :
     
    class MyRailtie < Rails::Railtie  
    
      initializer "my_railtie.configure_rails_initialization" do |app|        
    
        app.middleware.use MyRailtie::Middleware  
    
      end
    
    end
    
    

       
    마지막 으로 특정한 특성 을 시작 하 는 과정 에서 특정한 절차 에 맞 게 전달 할 수 있 습 니 다.  :before  화해시키다  :after  initializer 。
     
    배치 하 다.
     
    너의 Railtie 클래스 에서 설정 을 포함 하 는 config 대상 과 모든 것 을 얻 을 수 있 습 니 다. railties 와 응용 프로그램 공유.
     
    class MyRailtie < Rails::Railtie  
    
     #    ORM
    
      config.app_generators.orm :my_railtie_orm  
    
      # Add a to_prepare block which is executed once in production  
    
      # and before each request in development  
    
      config.to_prepare do   
    
        MyRailtie.setup!  
    
      end
    
    end
    
    

       
    rake 작업 불 러 오기 및 생 성기
    하면, 만약, 만약... railtie 는 rake 퀘 스 트 가 있 습 니 다. rake 를 통 해tasks 방법 은 Rails 에 게 그들 을 불 러 오 라 고 알려 줍 니 다.
    class MyRailtie < Rails::Railtie  
    
      rake_tasks do   
    
        load "path/to/my_railtie.tasks"  
    
      end
    
    end

    Rails 는 기본적으로 로 딩 경로 에서 생 성 기 를 불 러 옵 니 다. 생 성 기 를 다른 곳 에 두 려 면 Railtie 에서 block 을 지정 할 수 있 습 니 다. 이 block 은 정상 적 인 생 성 기 를 찾 을 때 불 러 옵 니 다.
    class MyRailtie < Rails::Railtie  
    
      generators do   
    
        require "path/to/my_railtie_generator"  
    
      end
    
    end
    
     

      Rails::Engine  initializers 가 설 치 된 것 에 불과 합 니 다.   Railtie  。... 때문에
      Rails::Application  engine 입 니 다. 여기 서 설명 한 설정 도 사용 할 수 있 습 니 다.
     

    좋은 웹페이지 즐겨찾기