Không có nhiều plugins từ Rails 4. Rails 4.0 release notes:
Rails :: Plugin đã biến mất. Thay vì thêm plugin vào nhà cung cấp/plugins sử dụng đá quý hoặc bundler với đường dẫn hoặc phụ thuộc vào git.
Động cơ có thể được chứa trong đá quý. Gem chỉ là một bí danh cho một 'thư viện'.
Cách tốt nhất để xem những gì khác biệt của họ là, đang tạo ra ba trong số họ và nhìn qua cấu trúc của chúng thư mục:
bundle gem a_gem
, sử dụng cho các chức năng không đường ray cụ thể.
rails plugin new b_railtie
, sử dụng cho tiện ích mở rộng đường ray không yêu cầu thiết lập giống như ứng dụng đầy đủ. nhưng, vì nó vẫn là một thiết lập đường ray cụ thể (bạn sẽ có ứng dụng giả Rails của bạn trong /test
ví dụ), có thể bạn sẽ sử dụng railtie trong đó.railtie là một lớp kế thừa từ Rails::Railtie
và cung cấp cho bạn DSL thoải mái để nối mã của bạn vào Rails. ví dụ, nếu bạn muốn một số hành động được thực hiện :before
một số bước khởi tạo ứng dụng Rails, bạn có thể sử dụng initializer
Railtie class_method. Paperclip
rails plugin new c_engine --full
, sử dụng cho các phần mở rộng đường ray sẽ được chính thức ứng dụng bản thân, gắn vào ứng dụng của bạn. sẽ cung cấp cho bạn /app
dir và Engine
phân lớp bên cạnh thiết lập cơ bản không --full
.
rails plugin new c_engine --mountable
, giống như --full
, nhưng sẽ tạo không gian tên, sẵn sàng để được gắn vào công cụ ứng dụng của bạn. Spree
Và đây là liên kết khá tốt: http://hawkins.io/2012/03/defining_plugins_gems_railties_and_engines.