В чем разница между генераторами и шаблонами? - PullRequest
0 голосов
/ 16 мая 2011

В Rails у нас есть как генераторы, так и шаблоны для быстрой установки и настройки приложений. Внешне, кажется, есть 2 различия между генераторами и шаблонами:

  1. Вы можете применять шаблоны при создании нового приложения с помощью rails new appname -m path/to/template.rb. Генераторы должны быть запущены после создания приложения rails с rails g generator_name
  2. Генераторы - это классы, составленные из ряда открытых методов, которые запускаются в той последовательности, в которой они объявлены. Шаблоны - это просто набор команд.

На мой взгляд, это делает генераторы и шаблоны практически идентичными. Если бы мне пришлось выбирать, я бы пошел с шаблонами, потому что запуск ряда открытых методов в том порядке, в котором они объявлены, кажется мне довольно странной OO-абстракцией. Ряд простых команд намного понятнее и не требует от читателя знания этого довольно необычного соглашения для понимания шаблонов.

Есть ли еще существенные различия между генераторами и шаблонами? Если да, есть ли ситуации, когда один из них более подходит, чем другой? Если нет, то почему в Rails есть и то, и другое, и в какой-то момент один метод может устареть?

1 Ответ

0 голосов
/ 16 мая 2011

Я думаю, что вы описываете, главным образом, что-то вроде курицы и яйца - шаблон, который вы описываете (не путать с шаблонами представления действия), должен применяться до создания приложения, тогда как генераторы работают изнутри приложение rails (и многое другое можно добавить через плагины и т. д.). Яблоки и апельсины.

...