Попытка отследить an issue обновление записи, и пришел к этому блоку:Контроллер Rails: где указано @ foo.update?
# PATCH/PUT /artefacts/1
# PATCH/PUT /artefacts/1.json
def update
respond_to do |format|
if @artefact.update(artefact_params)
format.html { redirect_to @artefact, notice: 'Artefact was successfully updated.' }
format.json { render :show, status: :ok, location: @artefact }
else
format.html { render :edit }
format.json { render json: @artefact.errors, status: :unprocessable_entity }
end
end
end
Теперь для меня это выглядит как определение update
проверяет себя, но это не может быть правдой, так как там нет код для разбора artefact_params
.
Что мне не хватает? Где код, который анализирует параметры и сохраняет запись?
(с использованием Rails 5.0rc1)
вы просите, чтобы увидеть [Rails исходный код] (https://github.com/rails/rails) ? Если вы готовы копать, вы можете видеть все, что захотите. – MarsAtomic
Я не знаком с тем, что происходит за кулисами. Я прошу увидеть исходный код рельсов? Это то, где будет храниться определение для '@ artefact.update'? – joshfindit
'update' является частью RESTful API Rails, поэтому да, вот где он будет найден. Представьте, что вы пишете метод, который сохраняет данные на основе набора данных, которые он получает (хеш параметров). Вы отменили бы эти данные в своем методе, а затем вызовите некоторый метод 'save' с этими параметрами unmarshalled в качестве аргументов для сохранения. Для меня это кажется простым, поэтому мне интересно, почему вы задаете этот вопрос (например, у вас есть еще одна проблема, которую вы пытаетесь решить, которая приведет вас в этом несколько окольном направлении). – MarsAtomic