Wicked Няма съвпадения по маршрута

Следвам A Wicked exampe за изграждане моя съветник, освен че първо създавам модела в специален контролер, след това при запазване пренасочвам към контролера на стъпките, но получавам грешка при маршрутизиране, казваща:

No route matches {:action=>"show", :controller=>"needs_personals/steps"}

Кодът за пренасочване изглежда така:

redirect_to needs_personal_step_path, :needs_personal_id => @needsPersonal.id

Използвах needs_personal_step_path, защото моят rake routes извежда това:

    needs_personal_steps GET    /needs_personals/:needs_personal_id/steps(.:format)          needs_personals/steps#index
                         POST   /needs_personals/:needs_personal_id/steps(.:format)          needs_personals/steps#create
 new_needs_personal_step GET    /needs_personals/:needs_personal_id/steps/new(.:format)      needs_personals/steps#new
edit_needs_personal_step GET    /needs_personals/:needs_personal_id/steps/:id/edit(.:format) needs_personals/steps#edit
     needs_personal_step GET    /needs_personals/:needs_personal_id/steps/:id(.:format)      needs_personals/steps#show
                         PUT    /needs_personals/:needs_personal_id/steps/:id(.:format)      needs_personals/steps#update
                         DELETE /needs_personals/:needs_personal_id/steps/:id(.:format)      needs_personals/steps#destroy

Във файла с маршрути имам това:

resources :needs_personals do
  resources :steps, controller: 'needs_personals/steps'
end

Ако напиша път, насочващ към браузъра, работи /needs_personals/90/steps

Благодаря.

Актуализация от 29 септември 2012 г.

Вярвам, че съм разбрал защо това го прави и съм приложил решение. Мисля, че това се случва поради объркване с параметъра id. Въпреки преминаването на needs_personal_id изглежда, че третира идентификатора като последния параметър на връзката вместо средния идентификатор.

Работата ми е просто да го насоча към действителния URL адрес на низа:

redirect_to "/needs_personals/#{@needsPersonal.id}/steps"

Това работи добре. Въпреки че бих искал да знам как да го направя с правилния път.


person Jaijaz    schedule 18.09.2012    source източник


Отговори (1)


Мисля, че това е, което търсите:

redirect_to needs_personals_steps_path(@needsPersonal.id, :first_step)

където :first_step е символът за вашата първа стъпка на съветника.

person madhermit    schedule 05.10.2012
comment
Благодаря. Вашият отговор беше почти правилен. Така че ще го направя както трябва и ще спомена, че всъщност е redirect_to needs_personal_steps_path(@needsPersonal.id, :first_step) Предположение, защото имаме работа с индивидуален модел на нуждите, а не с всички. Благодаря отново, че ме насочихте към правия път, така да се каже ;) - person Jaijaz; 06.10.2012
comment
Върнах се да разгледам това и забелязах правописна грешка в коментара си. Всъщност е: redirect_to needs_personal_step_path(@needsPersonal.id, :first_step) - person Jaijaz; 27.10.2012