У меня есть 3 просмотра, которые пользователи видят в заказе, сначала они выбирают местоположение, затем затем выбирают категорию, затем они отправляются в форму. Первое представление отправляет информацию о местоположении в представление выбора категории. В представлении выбора категории я использую строку запроса для отправки идентификатора категории в форму. В действии Controller # new я помещаю строку запроса в переменную экземпляра: @award = Award.find (params [: award])
проблема в том, что если пользователь не заполняет соответствующие поля, то форма не сохраняется и строка запроса больше не существует. Что в моем случае означает, что у рекомендации больше нет категории, которая затем будет приводить к сбою формы.
Как мне сохранить строку запроса при неудачном действии создания?
def create
@recommendation = Recommendation.new(params[:recommendation])
@recommendation.user_id = current_user.id
respond_to do |format|
if @recommendation.save
format.html { redirect_to location_path, notice: 'Recommendation was successfully created.' }
format.json { render json: @recommendation, status: :created, location: @recommendation }
else
format.html { render action: "new" }
format.json { render json: @recommendation.errors, status: :unprocessable_entity }
end
end
end
РЕДАКТИРОВАТЬ _
Я подумал, что могу поделиться новым действием:
def new
@recommendation = Recommendation.new
@award = Award.find(params[:award])
@recommendation.approvals.build
respond_to do |format|
format.html # new.html.erb
format.json { render json: @recommendation }
end
end