Ruby on rails I';m getting ActionController::RoutingError:没有与[GET]匹配的路由/项目“;尽管路线看起来是正确的

Ruby on rails I';m getting ActionController::RoutingError:没有与[GET]匹配的路由/项目“;尽管路线看起来是正确的,ruby-on-rails,rspec,capybara,Ruby On Rails,Rspec,Capybara,我是编程新手,已经学习RubyonRails大约11周了 在简单的“待办事项”列表应用程序上运行功能规范(使用RSpec和Capybara)时。我得到这个错误: Failures: 1) User creates ITEM Successfully Failure/Error: click_button 'Save' ActionController::RoutingError: No route matches [GET] "/items" 这是我的路

我是编程新手,已经学习RubyonRails大约11周了

在简单的“待办事项”列表应用程序上运行功能规范(使用RSpec和Capybara)时。我得到这个错误:

Failures:

  1) User creates ITEM Successfully
     Failure/Error: click_button 'Save'
     ActionController::RoutingError:
       No route matches [GET] "/items"
这是我的路由文件:

  devise_for :users


    resources :items, only: [:new, :create, :show] 


  get 'about' => 'welcome#about'
  root to: "welcome#index"

end
…以下是“项目”控制器:

class ItemsController < ApplicationController

  def new
  end

  def show
  end

  def create
    @item = Item.new(item_params)
    @item.save
    redirect_to @item
  end


   private

   def item_params
     params.require(:item).permit(:body)
   end
 end
和项目工厂:

FactoryGirl.define do 
  factory :item do 
    body 'itembody'
    list 
    end
 end
…以下是表格:

<h1>Items#new</h1>

<%= form_for Item.new do |form| %>
  <%= form.text_field :body, placeholder: 'Body' %> 
   <%= form.submit 'Save' %>
<% end %> 
也许可以试试:

resources :items, only: [:new, :create, :show, :index]
如果在命令行中运行
rake routes
,它将显示应用程序可用的路由(并帮助解释上述内容)

此外,如果您尚未阅读:


您能提供您提交的表单吗?好的-刚刚添加了表单。在运行rake路由之后,我得到:root-get/您是否已经将索引操作添加到items-resources路由(如上所述)?是的。我运行了rake路由并发布了它们。不,我的意思是你是否修改了
routes.rb
以合并上面列出的线路?来自您发布的错误--“[GET]”/items”的请求表示Rails正在查找项的索引方法,但现有资源路由仅包括:new、:create和:show方法。尝试添加:index(如果您还没有——我无法从您的回答中判断)。这样做了,但我不确定为什么。因为我没有在items控制器中定义索引方法。我像你说的那样添加了:对路由进行索引,然后当然必须向控制器添加索引方法,然后我必须创建视图。之后,规范通过了。
<h1>Items#new</h1>

<%= form_for Item.new do |form| %>
  <%= form.text_field :body, placeholder: 'Body' %> 
   <%= form.submit 'Save' %>
<% end %> 
   items POST   /items(.:format)                  items#create
new_item GET    /items/new(.:format)              items#new
    item GET    /items/:id(.:format)              items#show
   about GET    /about(.:format)                  welcome#about
resources :items, only: [:new, :create, :show, :index]