0

У меня есть следующий в маршрутах:рельсов ссылка на вложенный маршрут не работает

resources :projects do 
    resources :schedules 
end 

Я пытаюсь перейти на страницу шоу расписания. Рейк маршруты перечисляет это:

project_schedule GET /projects/:project_id/schedules/:id(.:format) schedules#show 

У меня есть следующие ссылки на другую страницу в расписание # показа страницы:

<%= link_to 'Show Schedule', project_schedule_path(project.id, schedule.id) %> 

страница возвращает следующее сообщение об ошибке:

Couldn't find Schedule with id=26 

Вот параметры:

{"project_id"=>"26", 
"id"=>"48"} 

Я знаю расписание существует с этими идентификаторами, потому что я могу найти его в консоли:

<Schedule id: 48, project_id: 26, created_at: "2013-11-25 19:08:00", updated_at: "2013-11-25 19:08:00"> 

Почему не работает ссылка? Благодарю.

+0

Ошибка заявляет, что он не может найти расписание с 'id' 26. Вы показываете пример расписания с' id' 48. – AbM

+0

Идентификатор вашего расписания - 48. Но вы пытаетесь найти расписание с id = 26. Вы запутываете расписание и идентификатор проекта где-то. – ksu

+0

Спасибо, ссылка работает, но почему-то сейчас контроллер не является. У меня есть это мой контроллер: @schedule = Schedule.find (params [: project_id], params [: schedule_id]), но он дает ту же ошибку, что и выше. есть идеи? – Philip7899

ответ

0

Похоже, вы пытаетесь найти график, используя идентификатор проекта.

Я хотел бы сделать это в вашем контроллере:

# find the parent model first 
@project = Project.find params[:project_id] 

# now get its associated schedule: 
@schedule = @project.schedules.find params[:id] 

Вы также можете иметь идентификаторы назад в вашем помощнике link_to. Вы можете попробовать использовать ярлык:

link_to 'Schedule', [project, schedule] 

Это преобразуется в project_schedule_path

+0

Спасибо, ссылка работает, но почему-то сейчас действие show в контроллере не является. У меня есть это мой контроллер: @schedule = Schedule.find (params [: project_id], params [: schedule_id]), но он дает ту же ошибку, что и выше. есть идеи? – Philip7899

+0

Это неправильный способ найти расписание. Вы передаете project_id, чтобы найти расписание и его жалобы, что он не может найти расписание с этим идентификатором (id проекта). Попробуйте использовать предоставленный мной код. – DiegoSalazar

+0

Thats странно, с вашим кодом он говорит: «неопределенный метод' find »для # ' – Philip7899

1

Попробуйте

<%= link_to 'Show Schedule', project_schedule_path(schedule.id, project.id) %> 
+0

Спасибо, попробовал это, но это приведет меня к неправильному проекту. Идентификатор проекта - 48, а график - 26, но, как вы можете видеть на консоли, это не тот проект. – Philip7899

Смежные вопросы