0

我认为这是控制器未正确匹配的路由问题。我很困惑,因为new我的ComicTitlesController.

这是我在加载主页时收到的错误,该主页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
4

2 回答 2

1

如您所见,路线需要参数:user_id,而您link_to缺少该参数。

尝试将您的link_to定义更新为以下内容:

<li><%= link_to 'Publish' , new_user_comic_title_path(@user) %></li>
于 2013-09-08T20:07:45.580 回答
0

由于您有一个嵌套路由,我相信该路由需要一个 user_id 参数。

在您的 link_to 助手中尝试添加以下内容:

<li><%= link_to 'Publish' , new_user_comic_title_path(user_id: current_user.id) %></li>
于 2013-09-08T20:08:04.883 回答