我认为控制器配置不正确是一个路由问题。我感到很困惑,因为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
答案 0 :(得分:1)
如您所见,路线需要参数:user_id
,而您的link_to
缺少该参数。
尝试将link_to
定义更新为以下内容:
<li><%= link_to 'Publish' , new_user_comic_title_path(@user) %></li>
答案 1 :(得分:0)
由于您有一个嵌套路由,我相信该路由需要一个user_id参数。
在link_to帮助器中尝试添加以下内容:
<li><%= link_to 'Publish' , new_user_comic_title_path(user_id: current_user.id) %></li>