2016-02-11 2 views
3

Когда я использую генератор эстакад Rails для создания моих Rails-файлов, он создает, среди прочего, файл контроллера. напримерИзменение шаблонов-контроллеров-генераторов-шаблонов в Rails

rails generate scaffold potato

генерирует:

app/controllers/potatos_controller.rb

Для моего проекта я хочу этот файл немного более конкретного. Например. Я хочу изменить это автоматическое генерируемое действие:

def create 
    @potato = Potato.new(potato_params) 

    respond_to do |format| 
    if @potato.save 
     format.html { redirect_to @potato, notice: 'Potato was successfully created.' } 
     format.json { render :show, status: :created, location: @potato } 
    else 
     format.html { render :new } 
     format.json { render json: @potato.errors, status: :unprocessable_entity } 
    end 
    end 
end 

на использование I18n-перевод вместо закодированного «Картофель был успешно создан.» Также я хочу изменить некоторые углубления, поскольку rubocop всегда жалуется на это.

Я нашел шаблон эхолота-генератора и теперь хочу внести свои изменения. Для этого я создал файл в своем проекте: lib/templates/rails/scaffold_controller/templates/controller.rb В этом файле я внесла свои изменения. (Например, я изменил линию

redirect_to @<%= singular_table_name %>, notice: <%= "'#{human_name} was successfully created.'" %> 

в

redirect_to @<%= singular_table_name %>, notice: <%= "'#{human_name} THIS IS A TEST.'" %> 

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

Update: Вот вывод команды генерировать-:

rails generate scaffold potato  

Running via Spring preloader in process 31479 
    invoke active_record 
    ... 

    invoke scaffold_controller 
    create app/controllers/potatos_controller.rb 
    ... 

Скриншот из Railties:

Railtiesenter image description here

+0

Кто вы решите вашу проблему? Я пробую с ответом Майха, но не работает. – inye

ответ

4

Rails 4 показывает, какой шаблон используется

rails generate scaffold potato 
... 
invoke scaffold_controller 

Вы должны разместить измененные шаблоны в проекте, т.е.
lib/templates/rails/scaffold_controller/controller.rb.

Обратите внимание, что драгоценный камень ответчика может изменить генератор, используемый для
lib/templates/rails/responders_controller/controller.rb.

+0

Спасибо за этот намек. Я проверил вывод генератора, и он sais, что он вызывает 'scaffold_controller' - тот, который я пытался редактировать. (См. Обновленный вопрос) –

+0

Это интересно. Можете ли вы попробовать отредактировать 'responseers_controller' и посмотреть, что произойдет? –

+1

Я также добавил скриншот, если структура каталогов моих рельсов-генераторов. Кажется, нет * responseers_controller *. Я попытался создать файл в своем проекте, но это не повлияло на результат. –

Смежные вопросы