Я думаю, что это проблема маршрутизации, при которой контроллер не соответствует должным образом. Я смущен, потому что в моем 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
Избили меня всего несколько секунд: D хороший улов! –
Спасибо! Однако теперь, когда я нажимаю на ссылку, она дает мне: Ошибка маршрутизации Нет ссылок на маршрут [GET] "/ users/1/2/comic_titles/new" Попробуйте использовать маршруты рейка для получения дополнительной информации о доступных маршрутах. Не знаете, почему есть/1/2 ... – Jayway