2010-08-16 58 views

Trả lời

6

Sự khác biệt cơ bản là đá quý là thứ cần được cài đặt trên hệ thống đang chạy ứng dụng Rails của bạn, trong khi plugin được triển khai cùng với ứng dụng của bạn. Cụ thể hơn, plugin trực tiếp trong nhà cung cấp/plugin trong khi đá quý cần phải được cài đặt bằng cách sử dụng rake gem install gem_name. Khi sử dụng, đá quý có xu hướng dễ dàng hơn để cập nhật, nhưng cụ thể hơn, một số đá quý sử dụng mã C gốc và được biên dịch riêng cho một hệ điều hành cụ thể (chẳng hạn như Nokogiri). Những cần phải được cài đặt như đá quý vì chúng sẽ không hoạt động khi chuyển sang hệ thống khác. Trong khi một số thứ như behavior_as_commentable sử dụng mã ruby ​​thẳng và có thể được chuyển từ hệ thống này sang hệ thống khác.

0

Đá quý được phân phối bởi rubygems, là trình quản lý gói thư viện ruby ​​chính thức. Plugins là một cách (có thể là hacky) cho các plugin rails. Tôi khuyên bạn nên sử dụng đá quý bất cứ khi nào có thể, do độ phân giải phụ thuộc. Rails3 ecurages rằng bằng cách đóng gói với Bundler.

0

Tôi sử dụng đá quý mỗi khi đá quý hoạt động như tôi muốn và plugin khi tôi muốn thực hiện thay đổi tùy chỉnh cho ứng dụng đường ray cụ thể và không ảnh hưởng đến tất cả hệ thống của tôi.

1

Từ RailsGuides:

Một Rails plugin là hoặc là một phần mở rộng hoặc sửa đổi các khuôn khổ cốt lõi.

Từ Rubygems.org:

Một viên ngọc là một ứng dụng của Ruby đóng gói hoặc thư viện.

Vì vậy, sự khác biệt lớn nhất giữa 2 là các plugin Rails được tạo riêng để sử dụng trong các ứng dụng Ruby on Rails, trong khi đá quý thì không. Ví dụ, hãy xem Geokit.

Đá quý (geokit-gem) cung cấp các hoạt động dựa trên vị trí cơ bản.

Plugin Rails (geokit-rails) kết hợp công cụ tìm địa điểm vào ActiveRecord.

Ở đây bạn có thể thấy rằng đá quý cung cấp cốt lõi của Geokit. Đá quý này có thể được sử dụng ở mọi nơi, không chỉ là ứng dụng Rails. Plugin cung cấp các tính năng bổ sung cho những người đang sử dụng geokit trong ứng dụng Rails. Trong trường hợp này, việc sử dụng plugin cũng như gem là tùy chọn.

1

Khi bạn cài đặt plugin trong dự án, nó chỉ có thể được sử dụng trong dự án tương ứng. Nhưng nếu bạn cài đặt một viên ngọc, nó có thể được sử dụng bởi mọi dự án. Đây là sự khác biệt chính của Gem & Plugins.

Các vấn đề liên quan