В чем разница между двумя и когда нужно использовать вместо другого?
Rails 3: В чем разница между двигателем и самоцветом?
Ответ 1
An Engine
в терминологии rails на самом деле является субапикацией веб-приложения. Например, что-то вроде блога, форума или простой проверки подлинности: это не полномасштабные приложения, а страницы/представления/контроллеры/модели, которые можно добавить в любое приложение rails.
В rails2 это будет сделано с помощью plugin
. Теперь, поскольку rails3 двигатель может быть упакован в gem
.
A gem
- это рубиновая библиотека, которую можно найти на http://rubygems.org, и это стандартный (только) способ упаковки и распространять рубиновый код другим рубистам.
Итак, заключаем:
- Gem: это общая библиотека, которую можно легко установить, с управлением версиями, иметь зависимости и т.д.
- Механизм: это под-приложение приложения Rails, а поскольку Rails 3 распределены как драгоценный камень (что является удивительным!).
Итак, когда вы будете использовать один или другой:
- создать драгоценный камень, если вы хотите разделить функциональность ruby
- создайте движок (и упакуйте его в драгоценный камень), если у вас есть части вашего приложения rails, которые можно использовать в более общем плане.
Надеюсь, что это поможет.