2014-01-13 2 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''s? Кроме того, в вашем действии 'show' вам нужно получить свой' @ mediumable' из 'job_id' в пути. – Vidya

ответ

0

Вы должны предоставить работу и средний идентификатор, что-то вроде этого:

job_medium_path(@job, @medium) 
+0

Я делаю это, когда я вызываю путь на странице, и он все равно не работает. – Snubber

0

Supossing @job и @medium существует, попробуйте следующее:

job_medium_path(job_id: @job.id, id: @medium.id) 
Смежные вопросы