为什么我收到此路由错误?

时间:2014-01-13 14:45:07

标签: ruby-on-rails ruby

每当我使用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

2 个答案:

答案 0 :(得分:0)

您必须提供作业和媒体ID,如下所示:

job_medium_path(@job, @medium)

答案 1 :(得分:0)

存在@job@medium,请尝试以下操作:

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