Rails - не найдено ни одного маршрута {: action => "new",: controller => "comments"} - PullRequest
3 голосов
/ 09 октября 2011

Пробовал все, похоже, не могу найти проблему.

Ошибка на localhost:3000

No route matches {:action=>"new", :controller=>"comments"}

Ошибка на сервере

Rendered tasks/show.html.erb within layouts/application (134.7ms)
Completed 500 Internal Server Error in 187ms

ActionView::Template::Error (No route matches {:action=>"new", :controller=>"comments"}):
    66: 
    67: <br />
    68: 
    69: <%= link_to 'New Comment', new_task_comment_path %>
    70: 
    71: 
    72: 
  app/views/tasks/show.html.erb:69:in `_app_views_tasks_show_html_erb___1205853643464254853_2489437560'
  app/controllers/tasks_controller.rb:18:in `show'

Routes.rbвложены ли мои ресурсы

  resources :tasks do
    resources :comments    
  end

и соответствующий раздел моего $rake routes

$ rake routes
    task_comments GET    /tasks/:task_id/comments(.:format)          {:action=>"index", :controller=>"comments"}
                  POST   /tasks/:task_id/comments(.:format)          {:action=>"create", :controller=>"comments"}
 new_task_comment GET    /tasks/:task_id/comments/new(.:format)      {:action=>"new", :controller=>"comments"}
edit_task_comment GET    /tasks/:task_id/comments/:id/edit(.:format) {:action=>"edit", :controller=>"comments"}
     task_comment GET    /tasks/:task_id/comments/:id(.:format)      {:action=>"show", :controller=>"comments"}
                  PUT    /tasks/:task_id/comments/:id(.:format)      {:action=>"update", :controller=>"comments"}
                  DELETE /tasks/:task_id/comments/:id(.:format)      {:action=>"destroy", :controller=>"comments"}

Чего мне здесь не хватает?

1 Ответ

19 голосов
/ 09 октября 2011

Вы не передаете его task_id:

new_task_comment_path(@task.id)
...