我正在尝试根据 Michael Hartl 在他的教程中的用户模型创建一个订单模型来接收订单。
我在 View 的 Orders 目录中创建了一个基本的订单页面和确认页面。我为内容创建了测试,当我运行它们时,它们会显示各种错误,大多数与此有关:
Failure/Error: before { visit root_path }
ActionView::Template::Error:
No route matches {:action=>"show", :controller=>"orders"}
我认为这与缺少视图(“模板”的原因)有关,但正如我所说,我有这些文件。在我的 routes.rb 文件中,我有以下内容:
resources :orders
root to: 'alpha#welcome'
match '/order', to: 'orders#new'
match '/about', to: 'alpha#about'
match '/contact', to: 'alpha#contact'
match '/confirmation', to: 'orders#show'
我的订单控制器这样说:
class OrdersController < ApplicationController
def show
@order = Order.find(params[:id])
end
def new
@order = Order.new
end
end
我一直在梳理他的教程,试图找出我做错了什么,但还没有任何效果。帮助?我对此很陌生。
哦。另外令人困惑的是,rspec 声称它在规范文档中存在此问题,而该规范文档根本不尝试遵循这些路线中的任何一条。(我有三个规范:一个用于静态页面,一个用于订单模型,一个用于订单页面。静态页面一是抱怨订单模型控制器中的操作。)
谢谢,根据要求,这是我的订单页面规范:
require 'spec_helper'
describe "Order Pages" do
subject { page }
describe "order page" do
before {visit order_path}
it { should have_selector('h1', text: 'Order Below') }
it { should have_selector('title', text: 'Order') }
end
describe "confirmation page" do
let(:order) { FactoryGirl.create(:order) }
before { visit confirmation_path(order) }
it { should have_selector('h1', text: 'Your order:') }
it { should have_selector('title', text: 'Order') }
end
end