Проблемы с перенаправлением Rails

Я установил несколько простых ассоциаций в своем приложении rails:

resources :properties do
 resources :units
end

После обновления блока:

'localhost: 3000/свойства/2/единицы/3/изменить'

Я хочу, чтобы меня перенаправили обратно в нужное место.

после того, как я нажму «Обновить», меня перенаправят обратно на:

'localhost:3000/units/3', но следует перейти к 'localhost:3000/properties/2/units/3/'

В моем контроллере единиц у меня есть:

if @unit.update_attributes(params[:unit])
    format.html { redirect_to(property_units_path(@property, @unit), :notice => 'Unit was successfully updated.') }
    format.xml  { head :ok }
  else
    format.html { render :action => "edit" }
    format.xml  { render :xml => @unit.errors, :status => :unprocessable_entity }
  end

Это правильное использование в моей функции redirect_to? Я все еще пытаюсь ознакомиться с тем, как работают маршруты, но я чувствую, что это должно работать?

Спасибо!


person Paul    schedule 15.09.2011    source источник


Ответы (1)


Вы почти у цели. Вы должны перенаправить на:

format.html { redirect_to(property_unit_path(@property, @unit), :notice => 'Unit was successfully updated.') }

Обратите внимание, что вы должны использовать единственную версию вспомогательного метода маршрутизации, чтобы это работало. Дополнительные сведения см. в руководстве по рельсам по маршрутизации. .

person Erick Ornio    schedule 26.06.2012