2010-08-16 3 views

답변

6

기본 차이점은 Rails 애플리케이션을 실행하는 시스템에는 설치가 필요한 반면, 애플리케이션과 함께 배포된다는 것입니다. 더 구체적으로, 플러그인은 vendor/plugins에 있고, 반면에 gem은 rake gem install gem_name을 사용하여 설치해야합니다.

각각을 사용하는 경우 보석은 최신 상태를 유지하는 경향이 있지만,보다 구체적으로 일부 보석은 기본 C 코드를 사용하며 특정 운영 체제 (예 : Nokogiri) 용으로 특별히 컴파일됩니다. 다른 시스템으로 이동할 때 작동하지 않으므로 보석으로 설치해야합니다. acts_as_commentable과 같은 일부 함수는 스트레이트 루비 코드를 사용하고 시스템간에 이동할 수 있습니다.

0

보석은 공식 루비 라이브러리 패키지 관리자 인 rubygems에 의해 배포됩니다. 플러그인은 레일즈 플러그인을위한 (아마 hacky) 방법입니다. 의존성 해결 때문에 가능한 한 보석을 사용하는 것이 좋습니다. Rails3는 Bundler와 함께 포장하여 포장합니다.

0

특정 레일 애플리케이션에 대한 사용자 정의 변경을 수행하고 모든 시스템에 영향을 미치고 싶지 않을 때 보석이 작동 할 때마다 필자는 보석을 사용합니다.

1

RailsGuides에서 :

레일즈 플러그인 확장 또는 코어 프레임 워크의 수정 중입니다.

Rubygems.org에서

:

보석은 패키지 루비 응용 프로그램 또는 라이브러리입니다.

그래서 2에서 가장 큰 차이점은 Rails 플러그인은 보석과 달리 Ruby on Rails 애플리케이션에서 사용하기 위해 만들어 졌다는 것입니다.

예를 들어, Geokit을 보겠습니다.

젬 (geokit-gem)은 기본적인 위치 기반 작업을 제공합니다.

레일스 플러그인 (geokit-rails)은 위치 찾기를 ActiveRecord로 혼합합니다.

여기서 Geokit의 핵심을 볼 수 있습니다. 이 보석은 Rails 앱뿐만 아니라 어디에서나 사용할 수 있습니다. 이 플러그인은 Rails 앱에서 geokit을 사용하는 사람들을위한 추가 기능을 제공합니다. 이 경우 플러그인뿐만 아니라 보석 사용은 선택 사항입니다.

1

프로젝트에 플러그인을 설치하면 해당 프로젝트에서만 사용할 수 있습니다. 하지만 보석을 설치하면 모든 프로젝트에서 사용할 수 있습니다. 이것은 보석 & 플러그인의 주요 차이점입니다.

관련 문제