Rails 애플리케이션에 플러그인 / 엔진을 포함하는 방법은 무엇입니까?

초기

이것은 Rails 플러그인과 처음으로 상호 작용하는 것이며 이것이 어떻게 작동하는지에 대해 머리를 감쌀 수는 없습니다. 레일스 플러그인 / 엔진을 만들 것입니다. 이 플러그인을 Rails 애플리케이션 (다른 프로젝트)에 포함하고 싶습니다. 어떻게해야합니까? 나는 이것을 제안하는 것을 발견 했다.

이 새로운 엔진 디렉토리의 루트에는 plugin_name.gemspec 파일이 있습니다. 나중에 애플리케이션에 엔진을 포함 할 때 Rails 애플리케이션의 Gemfile에서 다음 줄을 사용하여 수행합니다.

gem 'plugin_name', path: 'engines/plugin_name'

제 질문은 정확히 어떻게해야하나요? 레일스 애플리케이션을 만들 때 engines폴더 구조에서 디렉토리를 찾지 못한다는 의미 입니다. 또한 플러그인 프로젝트의 어떤 디렉토리를 디렉토리에 배치해야 engines/합니까?
나는 수행하여 플러그인을 만들었습니다.

rails plugin new plugin_name --mountable

다음 파일 / 디렉토리를 생성했습니다.

|-app/
|-bin/                
|-config/
|-demo_project.gemspec
|-Gemfile
|-Gemfile.lock
|-lib/
|-MIT-LICENSE
|-Rakefile
|-README.md
|-test
  |-dummy
    |-(contains a rails application)

이제이 플러그인으로 작업을 마치면 다른 Rails 애플리케이션에 어떻게 포함 할 수 있습니까? engines/gemfile에 플러그인을 포함하는 것 외에도 어떤 디렉토리 를 추가해야합니까?

이 외에도 다음이 나타내는 내용에 대한 정보도 필요합니다.

또한이 --mountable옵션은 test/dummy에있는 더미 애플리케이션의 경로 파일에 다음을 추가하여 에있는 더미 테스트 애플리케이션 내부에 엔진을 마운트하도록 생성기에 지시합니다 test/dummy/config/routes.rb.

mount PluginName::Engine => "/plugin_name"

마운트 지점은 무엇을 나타내며 플러그인이 Rails 애플리케이션에 포함되면 그 역할은 무엇입니까?

Vasfed

Rails 엔진은 메인 앱 내부에 마운트되는 격리 된 레일 앱입니다. 엔진을 만드는 두 가지 주된 이유는 애플리케이션 부분의 격리 (앱을 조각으로 분할하려는 의도가 있음)와 코드 재사용 (여러 앱에서 동일한 엔진을 사용할 때)입니다.

기술적으로는 루비 보석이지만 종종 엔진은 자체 저장소, 보석 게시 등으로 완전히 추출되지 않고 더 큰 앱의 격리 된 부분으로 시작 (및 라이브)됩니다. 예를 들어 admin앱의 일부가 있는 경우 다음을 만들 수 있습니다. 그것은 엔진 :

# in gemfile:
gem 'admin', path: 'engines/admin'

# routes:
mount Admin::Engine => '/admin'

# engine's routes:
resources :foo # => because of being in an engine this will be /admin/foo

디렉토리 구조는 다음과 같습니다.

|-app/
|-bin/
|-...
|-config/
  |-application.rb
  |-routes.rb
|-engines/
  |-admin_engine/
    |-app/
      |-controllers/admin/
          |- foo_controller.rb
    |-config/
      |-routes.rb # <- this is engine's routes
    |-lib/
      |-admin/
        |-engine.rb
    |- admin.gemspec

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Mustache 템플릿 엔진을 Phalcon PHP 애플리케이션에 통합하는 방법은 무엇입니까?

분류에서Dev

Rails 애플리케이션에서 RESTful 검색 제안을 디자인하는 방법은 무엇입니까?

분류에서Dev

C # GUI에 C OpenGL 애플리케이션을 포함하는 방법은 무엇입니까?

분류에서Dev

Windows Form 애플리케이션에 콘솔을 포함하는 방법은 무엇입니까?

분류에서Dev

사양별로 Rails 애플리케이션 구성을 변경하는 방법은 무엇입니까?

분류에서Dev

Rails 애플리케이션을 글로벌하게 만드는 방법은 무엇입니까?

분류에서Dev

Android 애플리케이션에서 Gmail 로그인을 통합하는 방법은 무엇입니까?

분류에서Dev

Elixir Phoenix 애플리케이션에서 로그인을 요구하는 방법은 무엇입니까?

분류에서Dev

Qt 애플리케이션에서 사용되는 OpenGL 엔진 (소프트웨어 또는 하드웨어)을 확인하는 방법은 무엇입니까?

분류에서Dev

Ruby on Rails에서 Rails 애플리케이션을 실행하기위한 흐름은 무엇입니까?

분류에서Dev

탑재 된 엔진에 상위 애플리케이션의 레이아웃과 자산을 적용하는 방법은 무엇입니까?

분류에서Dev

cpanel에 nextjs 애플리케이션을 배포하는 방법은 무엇입니까?

분류에서Dev

Heroku에 React SSR 애플리케이션을 배포하는 방법은 무엇입니까?

분류에서Dev

유성 애플리케이션을 내 서버에 배포하는 방법은 무엇입니까?

분류에서Dev

Windows XP에서 Linux로 Tomcat 6 애플리케이션을 포팅하는 방법은 무엇입니까?

분류에서Dev

Windows Azure에서 AC # 애플리케이션을 배포하는 방법은 무엇입니까?

분류에서Dev

FI-LAB에서 애플리케이션을 배포하는 방법은 무엇입니까?

분류에서Dev

내 RESTful 애플리케이션을 Apache 서버에 배포하는 방법은 무엇입니까?

분류에서Dev

AWS Elastic Beanstalk에 Spring Boot 애플리케이션 전쟁을 배포하는 방법은 무엇입니까?

분류에서Dev

원격 WebLogic 서버에 웹 애플리케이션을 핫 배포하는 방법은 무엇입니까?

분류에서Dev

Heroku에서 배포 된 애플리케이션을 복사하는 방법은 무엇입니까?

분류에서Dev

Google App Engine에 SpringBoot 애플리케이션을 배포하는 방법은 무엇입니까?

분류에서Dev

Kotlin 애플리케이션을 Heroku에 배포하는 방법은 무엇입니까?

분류에서Dev

Rails-5 애플리케이션에 추가 JS를 구현하는 방법은 무엇입니까?

분류에서Dev

Rails 애플리케이션에서 Ruby를 디버깅하는 방법은 무엇입니까?

분류에서Dev

여러 Azure Active Directory 계정을 애플리케이션에 연결하는 방법은 무엇입니까?

분류에서Dev

localhost에서 여러 Express / Nodejs 애플리케이션을 실행하는 방법은 무엇입니까?

분류에서Dev

$ PATH에 있어야하는 바이너리가 포함 된 애플리케이션을 패키징하는 방법은 무엇입니까?

분류에서Dev

$ PATH에 있어야하는 바이너리가 포함 된 애플리케이션을 패키징하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Mustache 템플릿 엔진을 Phalcon PHP 애플리케이션에 통합하는 방법은 무엇입니까?

  2. 2

    Rails 애플리케이션에서 RESTful 검색 제안을 디자인하는 방법은 무엇입니까?

  3. 3

    C # GUI에 C OpenGL 애플리케이션을 포함하는 방법은 무엇입니까?

  4. 4

    Windows Form 애플리케이션에 콘솔을 포함하는 방법은 무엇입니까?

  5. 5

    사양별로 Rails 애플리케이션 구성을 변경하는 방법은 무엇입니까?

  6. 6

    Rails 애플리케이션을 글로벌하게 만드는 방법은 무엇입니까?

  7. 7

    Android 애플리케이션에서 Gmail 로그인을 통합하는 방법은 무엇입니까?

  8. 8

    Elixir Phoenix 애플리케이션에서 로그인을 요구하는 방법은 무엇입니까?

  9. 9

    Qt 애플리케이션에서 사용되는 OpenGL 엔진 (소프트웨어 또는 하드웨어)을 확인하는 방법은 무엇입니까?

  10. 10

    Ruby on Rails에서 Rails 애플리케이션을 실행하기위한 흐름은 무엇입니까?

  11. 11

    탑재 된 엔진에 상위 애플리케이션의 레이아웃과 자산을 적용하는 방법은 무엇입니까?

  12. 12

    cpanel에 nextjs 애플리케이션을 배포하는 방법은 무엇입니까?

  13. 13

    Heroku에 React SSR 애플리케이션을 배포하는 방법은 무엇입니까?

  14. 14

    유성 애플리케이션을 내 서버에 배포하는 방법은 무엇입니까?

  15. 15

    Windows XP에서 Linux로 Tomcat 6 애플리케이션을 포팅하는 방법은 무엇입니까?

  16. 16

    Windows Azure에서 AC # 애플리케이션을 배포하는 방법은 무엇입니까?

  17. 17

    FI-LAB에서 애플리케이션을 배포하는 방법은 무엇입니까?

  18. 18

    내 RESTful 애플리케이션을 Apache 서버에 배포하는 방법은 무엇입니까?

  19. 19

    AWS Elastic Beanstalk에 Spring Boot 애플리케이션 전쟁을 배포하는 방법은 무엇입니까?

  20. 20

    원격 WebLogic 서버에 웹 애플리케이션을 핫 배포하는 방법은 무엇입니까?

  21. 21

    Heroku에서 배포 된 애플리케이션을 복사하는 방법은 무엇입니까?

  22. 22

    Google App Engine에 SpringBoot 애플리케이션을 배포하는 방법은 무엇입니까?

  23. 23

    Kotlin 애플리케이션을 Heroku에 배포하는 방법은 무엇입니까?

  24. 24

    Rails-5 애플리케이션에 추가 JS를 구현하는 방법은 무엇입니까?

  25. 25

    Rails 애플리케이션에서 Ruby를 디버깅하는 방법은 무엇입니까?

  26. 26

    여러 Azure Active Directory 계정을 애플리케이션에 연결하는 방법은 무엇입니까?

  27. 27

    localhost에서 여러 Express / Nodejs 애플리케이션을 실행하는 방법은 무엇입니까?

  28. 28

    $ PATH에 있어야하는 바이너리가 포함 된 애플리케이션을 패키징하는 방법은 무엇입니까?

  29. 29

    $ PATH에 있어야하는 바이너리가 포함 된 애플리케이션을 패키징하는 방법은 무엇입니까?

뜨겁다태그

보관