2013-09-08 1 views
0

Я думаю, что это проблема маршрутизации, при которой контроллер не соответствует должным образом. Я смущен, потому что в моем ComicTitlesController явно есть действие new.Ошибка маршрутизации без согласования маршрута, когда действие явно находится в контроллере

Здесь ошибка я получаю, когда я загрузить домашнюю страницу, которая имеет new_user_comic_title_path в навигационной панели:

Routing Error 

No route matches {:action=>"new", :controller=>"comic_titles"} 
Try running rake routes for more information on available routes. 

В моих просмотров:

<li><%= link_to 'Publish' , new_user_comic_title_path %></li> 

ComicTitles контроллер:

def new 
    @user = current_user 
    @comic_title = @user.comic_titles.new 
    end 

Отметьте, что ComicTitle находится под User. Вот файл маршрута:

resources :users, shallow: true do 
    resources :comic_titles 
    end 

Когда я бегу rake routes:

user_comic_titles GET /users/:user_id/comic_titles(.:format)    comic_titles#index 
        POST /users/:user_id/comic_titles(.:format)    comic_titles#create 
new_user_comic_title GET /users/:user_id/comic_titles/new(.:format)   comic_titles#new 
    edit_comic_title GET /comic_titles/:id/edit(.:format)     comic_titles#edit 
     comic_title GET /comic_titles/:id(.:format)      comic_titles#show 
        PUT /comic_titles/:id(.:format)      comic_titles#update 
        DELETE /comic_titles/:id(.:format)      comic_titles#destroy 

ответ

0

Поскольку у вас есть вложенное маршрут, я считаю, что маршрут ожидает параметр user_id.

В вашем помощнике link_to попробуйте добавить следующее:

<li><%= link_to 'Publish' , new_user_comic_title_path(user_id: current_user.id) %></li> 
1

Как вы можете видеть маршрут требует параметр :user_id и ваш link_to отсутствует этот параметр.

Попробуйте обновить свой link_to определение следующим образом:

<li><%= link_to 'Publish' , new_user_comic_title_path(@user) %></li> 
+0

Избили меня всего несколько секунд: D хороший улов! –

+0

Спасибо! Однако теперь, когда я нажимаю на ссылку, она дает мне: Ошибка маршрутизации Нет ссылок на маршрут [GET] "/ users/1/2/comic_titles/new" Попробуйте использовать маршруты рейка для получения дополнительной информации о доступных маршрутах. Не знаете, почему есть/1/2 ... – Jayway