2014-01-13 53 views
0

每當我使用job_medium_path我收到此路由錯誤:爲什麼我得到這個路由錯誤?

ActionController::RoutingError Exception: No route matches {:action=>"show", :controller=>"media"} 

然而,當我使用rake routes它清楚地表明,是該路徑的路線:

job_medium GET /jobs/:job_id/media/:id(.:format)  {:action=>"show", :controller=>"media"} 

此外,在媒體控制器show動作被定義。

其他途徑和路徑,該控制器的工作完美,包括:

job_media GET /jobs/:job_id/media(.:format)   {:action=>"index", :controller=>"media"} 
new_job_medium GET /jobs/:job_id/media/new(.:format) {:action=>"new", :controller=>"media"} 

當我打電話到頁面上的路徑我用:job_medium_path(@mediumable, @media)和收到此錯誤:

Routing Error 

沒有路由匹配{:action =>「show」,:controller =>「media」,:job_id => [所有工作信息都在這裏]}

此處還有以下操作:

def show 
    @medium = @mediumable.media.find(params[:id]) 
end 
+0

你定義的表演動作你的媒體控制器? – bjhaid

+0

是的,我只是用它更新了這個問題 – Snubber

+0

那麼在你的索引頁上,你的所有'@ mediumable'的值都是?另外,在你的'show'動作中,你需要從路徑中的'job_id'派生'@ mediumable'。 – Vidya

回答

0

你必須提供工作和介質ID,這樣的事情:

job_medium_path(@job, @medium) 
+0

我這樣做,當我調用頁面上的路徑,它仍然無法正常工作。 – Snubber

0

Supossing @job@medium存在,試試這個:

job_medium_path(job_id: @job.id, id: @medium.id)