2012-09-18 65 views
0

我下面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 

在routes文件我有這樣的:

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

如果我在指導到它的工作原理/needs_personals/90/steps

由於瀏覽器中鍵入路徑。

更新2012年9月29日

我相信我已經制定了這是爲什麼這樣做,並圍繞實施工作。我認爲這是因爲與id參數混淆而發生的。儘管通過了needs_personal_id,但似乎將id作爲鏈接的最後一個參數而不是中間id。

我的解決辦法是隻是在實際字符串URL指向它:

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

這種運作良好。雖然很想知道如何在正確的道路上做到這一點。

回答

1

我認爲這是你在找什麼:

redirect_to needs_personals_steps_path(@needsPersonal.id, :first_step) 

其中:FIRST_STEP是符號添加到您嚮導的第一步。

+0

謝謝。你的回答幾乎是正確的。所以我會說它是正確的,並提到它實際上是'redirect_to needs_personal_steps_path(@ needsPersonal.id,:first_step)'猜測,因爲我們正在處理一個奇異的需求個人模型,而不是全部。再次感謝讓我走上正確的道路,可以這麼說;) – Jaijaz

+0

回來看看這個,注意到我的評論中有一個錯字。它實際上是:'redirect_to needs_personal_step_path(@ needsPersonal.id,:first_step)' – Jaijaz