У меня есть 3 представления, которые пользователи видят в заказе, сначала они выбирают местоположение, затем выбирают категорию, затем они отправляются в форму. Первое представление отправляет информацию о местоположении в представление выбора категории. Из категории select view я использую строку запроса для отправки идентификатора категории в форму. В новом действии Controller # я помещаю строку запроса в переменную экземпляра: @award = Award.find (params [: award])rails 3, Как установить и передать строку запроса через Controller # создать действие, которое не сохраняет
проблема заключается в том, что если пользователь не заполняет соответствующие поля, то форма не сохраняется, а строка запроса больше не существует. Что в моем случае означает, что в рекомендации больше нет категории, которая затем будет продолжать сбой формы.
Как я могу сохранить строку запроса в результате неудачного действия create?
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
EDIT _
Я полагал, что я мог бы поделиться нового действия:
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
вы всегда можете «сохраняться» данные в скрытом поле на форме – maprihoda
I представление содержит скрытое поле, но скрытое поле заполняется экземпляра Название переменной, которая возвращает nill после сбоя. –
@TJ Sherrill Я предполагаю, что у вас есть объект рекомендации, заполняющий форму и скрытое поле в этой форме, соответствующей рекомендации. Category (и вы установили ее значение, когда вы первоначально визуализировали форму). Если вы отправляете эту форму и терпите неудачу, вы хотите, чтобы действие вашего контроллера повторно отображало эту форму с данными объекта рекомендации; в котором вы сохранили это значение категории. Этого не происходит? Если у вас нет категории как атрибута объекта рекомендации, обязательно добавьте ее через attr_accessor или столбцом db через миграцию. – miked