1

我是 Ruby 和 Ruby on Rails 的新手,在 Max OSX Lion 上使用 Ruby 1.9.2 和 Rails 3.2.5,并且正在阅读“Agile Web Development with Rails (4th Edition)”一书。

我使用第 6 章中概述的以下命令创建了他们的示例 depot 应用程序:

  1. 轨道新仓库
  2. rails 生成脚手架产品标题:字符串描述:文本 image_url:字符串价格:十进制
  3. 耙分贝:迁移
  4. 导轨服务器

当我将 Safari 指向“http://localhost:3000/products”时,我得到以下操作控制器:异常捕获错误消息,而不是看到产品列表页面:

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

在终端中运行“rake 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

搜索本书的勘误表论坛并没有找到任何可能的解决方案。

提前致谢。

4

1 回答 1

0

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

学过的知识。确保从要测试的 Rails 应用程序目录运行本地服务器。

于 2012-06-10T00:40:01.240 回答