У меня есть существующая модель, в которую я хотел бы добавить несколько методов. Хотя я мог вручную добавить методы к контроллеру, а также соответствующие им шаблоны стилей / сценариев и маршруты, я бы предпочел, чтобы они выполнялись так же, как и при создании контроллера в первом место:

rails generate ControllerName hello goodbye

Есть ли способ добиться этого?

0
Carl Edwards 11 Апр 2014 в 22:15

2 ответа

Лучший ответ

Я думаю, что это вполне разумное желание. Однако, по общему мнению, это слишком тривиально, поэтому для него нет выбора.

Тем не менее, вы можете сделать пару вещей:

Если вы добавляете только одно или два действия к другому сложному контроллеру, вы можете сгенерировать еще один фиктивный контроллер только с этими двумя действиями. Затем скопируйте новые биты на свой существующий контроллер и выбросьте фиктивный. Что-то вроде git отлично подходит для отслеживания того, что здесь изменил генератор.

В качестве альтернативы, если вы хотите добавить много новых действий к тривиальному контроллеру, вы можете сохранить исходные файлы, позволить генератору перезаписать существующий контроллер, а затем вернуть исходные биты.

Помните, что вы всегда можете использовать опцию --pretend в генераторе, чтобы увидеть, что он создаст, не делая этого на самом деле. Это может быть особенно полезно, чтобы увидеть, какие файлы просмотра он создаст для действий в вашем случае.

1
user740584user740584 11 Апр 2014 в 18:30

Ты можешь сделать

rails generate controller mycontroller hello goodbye

Это сгенерирует контроллер с именем mycontroller с методами hello и goodbye.

0
Pavan 11 Апр 2014 в 18:20