У меня есть URLПопутный форма PARAMS к url_for/redirect_to/рендеринга
get '/vacancies/:id(/:mode)', to: 'vacancies#show', as: 'vacancy', constraints: { mode: /(resume|file)/}
внутри шоу просмотра пользователь может заполнить форму и отправить запрос на сервер. Если пользователь отправил недопустимые параметры, я должен перенаправить его обратно, показать ошибку проверки, а также я должен продолжать заполнять параметры.
Как я могу реализовать этот материал?
upd1
Типичные рельсы решение для этого что-то вроде render :new
или render :edit
, но в моем случае я не могу сделать, потому что render :show
оказывает вид на '/vacancies/:id
маршрут не '/vacancies/:id(/:mode)
.
Также я пробовал сделать redirect_to :back
, и это отлично работает, за исключением одного: параметры не передаются по запросу.
Я предполагаю, что есть решение внутри response
объекта, но еще не нашел
UPD2
class VacanciesController < ApplicationController
# vacancies/:id - is just show view
# vacancies/:id/resume - is show view with form
# vacancirs/:id/file - is show view with form for sending pdf|doc|etc
def show
@vacancy = Vacancy.find(params[:id])
end
def create
if Vacancy::SaveResume.new(resume_params).call.valid?
redirect_to vacancies_path
else
# didn't know what to do there
end
end
end
Это очень простой материал Rails. Я предлагаю прочитать [это руководство] (http://guides.rubyonrails.org/action_controller_overview.html) прочитанное, а затем опубликовать более подробный вопрос, если вы все еще застряли. – Thilo
@Thilo Я только что обновил сообщение – DmitrySharikov
, вам лучше использовать ajax в этом конкретном случае. – Ilya