当路线存在时,为什么我会得到无路线匹配[GET]“/ products”?

时间:2012-06-10 00:38:31

标签: ruby-on-rails-3 rails-routing

我是Ruby和Ruby on Rails的新手,我在Max OSX Lion上使用Ruby 1.9.2和Rails 3.2.5,并且正在通过书籍#34;使用Rails进行敏捷Web开发(第4版)"。

我已使用第6章中列出的以下命令创建了样本库应用程序:

  1. rails new depot
  2. rails generate scaffold产品名称:字符串描述:text image_url:string price:decimal
  3. rake db:migrate
  4. rails server
  5. 当我将Safari指向" http:// localhost:3000 / products"我得到以下Action Controller:Exception Caught错误消息,而不是看到产品列表页面:

    Routing Error
    No route matches [GET] "/products"
    Try running rake routes for more information on available routes.
    

    跑步"佣金路线"在终端给我:

        products GET    /products(.:format)          products#index
                 POST   /products(.:format)          products#create
     new_product GET    /products/new(.:format)      products#new
    edit_product GET    /products/:id/edit(.:format) products#edit
         product GET    /products/:id(.:format)      products#show
                 PUT    /products/:id(.:format)      products#update
                 DELETE /products/:id(.:format)      products#destroy
    

    以下行自动添加到routes.rb中。

    resources: product
    

    在products_controller.rb中还有一个索引方法。

    class ProductsController < ApplicationController
      # GET /products
      # GET /products.json
      def index
        @products = Product.all
    
        respond_to do |format|
          format.html # index.html.erb
          format.json { render json: @products }
        end
      end
    

    搜索该书的errataforums并没有找到任何可能的解决方案。

    提前致谢。

1 个答案:

答案 0 :(得分:0)

想出来 - 我在另一个终端窗口中运行了另一个WEBrick服务器实例,但是它是用于前一章的演示应用程序。

经验教训。确保从要测试的Rails应用程序的目录中运行本地服务器。