Код лесов для контроллера Rails - PullRequest
0 голосов
/ 28 июня 2018

для университетского проекта Я хочу внести некоторые изменения в механизм лесов Rails. В основном я хочу знать, где генерируется код скаффолда контроллера.

При взгляде на то, где генерируется код, я обнаружил то, что выглядело как соответствующие биты: https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt

Однако после его изменения, похоже, ничего не изменилось. Я пробовал и rails g scaffold .... и rails g scaffold_controller ....

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

шаблон:

# PATCH/PUT <%= route_url %>/1
def update
  if @<%= orm_instance.update("#{singular_table_name}_params") %>
    redirect_to <%= redirect_resource_name %>, notice: <%= "'#{human_name} was successfully updated.'" %>
  else
    render :edit
  end
end

реальность (dogs_controller.rb):

# PATCH/PUT /dogs/1
# PATCH/PUT /dogs/1.json
def update
  respond_to do |format|
    if @dog.update(dog_params)
      format.html { redirect_to @dog, notice: 'Dog was successfully updated.' }
      format.json { render :show, status: :ok, location: @dog }
    else
      format.html { render :edit }
      format.json { render json: @dog.errors, status: :unprocessable_entity }
    end
  end
end

Таким образом, в основном сгенерированный код также отвечает на запросы json, в то время как шаблон не выглядит так, как он это учитывает.

Выход консоли лесов также претендует на invoke scaffold_controller.

Тогда здесь также есть код: https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/controller/templates/controller.rb.tt, но это еще более скромно.

Короче говоря, я что-то не так делаю или где генерируется код контроллера для строительных лесов.

К вашему сведению, я клонировал рельсы при коммите a1f9fe8bdd4e6c4e20fbda424c0ecf2f31fabd30 и оттуда разветвился, так довольно недавно.

...