для университетского проекта Я хочу внести некоторые изменения в механизм лесов 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 и оттуда разветвился, так довольно недавно.