[번역] 레일:: Railtie
3643 단어 Rails
레일 티 는 레일 스. 프레임 의 핵심 은 레일 스 의 시작 과정 을 확장 하거나 수정 하기 위해 몇 개의 갈 고 리 를 제공 합 니 다.
Rails 의 모든 주요 구성 요 소 는 하나 입 니 다. Railtie, 예 를 들 어 Action Mailer, Action Controller, Action View and Active Record.그들 은 모두 자신의 시작 을 책임 집 니 다. 이 때문에 레일 스 자체 가 어떠한 구성 요소 의 갈고리 에 도 참여 하지 않 고 다른 구성 요소 가 레일 스 의 기본 설정 을 언급 할 수 있 도록 합 니 다.
Rails 확장 플러그 인 을 개발 하려 면 사용 할 필요 가 없습니다. 레일 티, 하지만 레일 스 가 시작 되 는 전후 와 프레임 의 상호작용 이 필요 하 다 면, 레일 티 가 필요 로 하 는 것.
예 를 들 어 확장 플러그 인 이 다음 과 같은 일 을 할 때 필요 합 니 다. 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 입 니 다. 여기 서 설명 한 설정 도 사용 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
새로운 UI의 Stripe Checkout을 Rails로 만들어 보았습니다.Stripe의 옛 디자인인 Stripe의 구현 기사는 많이 있습니다만, 지금 현재의 디자인에서의 도입 기사는 발견되지 않았기 때문에 투고합니다. Stripe의 체크아웃을 stripe의 문서라든지 stackoverfl...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.