News is uncountable word and thus rails generates routes a bit different for it - it appends **_index** to index and create named routes to avoid name collisions with show, update and destroy named routes. See bellow: resources :news news_index GET /news(.:format) {:controller=>"news", :action=>"index"} news_index POST /news(.:format) {:controller=>"news", :action=>"create"} new_news GET /news/new(.:format) {:controller=>"news", :action=>"new"} edit_news GET /news/:id/edit(.:format) {:controller=>"news", :action=>"edit"} news GET /news/:id(.:format) {:controller=>"news", :action=>"show"} news PUT /news/:id(.:format) {:controller=>"news", :action=>"update"} news DELETE /news/:id(.:format) {:controller=>"news", :action=>"destroy"} resources :posts posts GET /posts(.:format) {:controller=>"posts", :action=>"index"} posts POST /posts(.:format) {:controller=>"posts", :action=>"create"} new_post GET /posts/new(.:format) {:controller=>"posts", :action=>"new"} edit_post GET /posts/:id/edit(.:format) {:controller=>"posts", :action=>"edit"} post GET /posts/:id(.:format) {:controller=>"posts", :action=>"show"} post PUT /posts/:id(.:format) {:controller=>"posts", :action=>"update"} post DELETE /posts/:id(.:format) {:controller=>"posts", :action=>"destroy"} Because of news word nature it can't be used the same way posts is used To solve your problem change that link_to route to: <%= link_to "News Items", news_index_path %> as this way it will use correct route to show index action. news_path route is expecting id parameter (and it's used only for show, update and destroy actions) and that's why it's complaining in the first place.