Я только запускаю приложение rails 3, которое имеет родительскую модель и дочернюю модель (parent has_many: children).
Я пытаюсь настроить все так, чтобы после создания нового родителя пользователь перешел к действию show этого родителя (/ parent / id). В этом представлении я включил частичные элементы, чтобы показать всех потомков, и форму для создания нового потомка. После создания нового дочернего элемента пользователь перенаправляется на действие show для родительского элемента, где появится новый дочерний элемент. Это все работает как задумано.
Однако, если я попытаюсь проверить поля в новой дочерней форме, все возникающие сообщения об ошибках не появятся в форме (необходимые строки в представлении есть и являются правильными - вырезаны и вставлены из сгенерированного кода скаффолда). Есть ли способ успешно передать эти сообщения об ошибках для ребенка в родительское действие show?
Вот фрагменты соответствующего кода;
От моего родительского контроллера:
def show
@parent = Parent.find(params[:id])
@child = @parent.children.new
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @admission }
end
end
От моего дочернего контроллера:
def create
@child = Child.new(params[:parent])
respond_to do |format|
if @child.save
format.html { redirect_to(parent_path(params[:child][:parent_id]), :notice => 'Child was successfully created.') }
#This works as intended
format.xml { render :xml => @child, :status => :created, :location => @child }
else
format.html { redirect_to parent_path(params[:child][:patient_id]) }
#This redirects where I want it to go when validation fails but error messages are lost
format.xml { render :xml => @child.errors, :status => :unprocessable_entity }
end
end
end