2

简而言之

问题是,在教程中,我被告知要创建一个microposts资源,以及它的模型和控制器。在使用 rspec 测试其某些操作时,我在创建销毁操作时遇到“缺少模板”错误。但是本教程没有说明为这些操作创建视图,根据它,这些测试应该通过。

这是我对问题的原始较长描述:

我正在做railstutorial.org ,并且在第 11.3.2 章中遇到了一些问题。在清单 11.25 中,我们为 Micropost 创建操作编写了测试。运行它们后,我得到一个模板错误,在所有它们中:

ActionView::MissingTemplate:
       Missing template microposts/create with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/Users/me/Dropbox/dev/rails/tutorial/app/views"

我很困惑。本教程没有说明为这些操作创建视图,并且此时测试应该通过。也许我做错了什么的迹象是教程没有提到需要使用 generate 来创建 Microposts 控制器,但我使用了它。

这是我的微博控制器:

class MicropostsController < ApplicationController
  before_filter :authenticate

  def create
  end

  def destroy
  end

end

和我的 routes.rb

Secondappr::Application.routes.draw do
  get "sessions/new"

  resources :users
  resources :sessions, :only => [ :new, :create, :destroy ]
  resources :microposts, :only => [ :create, :destroy ]

  get "pages/home"

  root :to => 'pages#home'

  match '/contact', :to => 'pages#contact'

  match '/about',   :to => 'pages#about'

  match '/help',    :to => 'pages#help'

  match '/signup',  :to => 'users#new'

  match '/signin',  :to => 'sessions#new'

  match '/signout', :to => 'sessions#destroy'


end
4

1 回答 1

3

在 11.26create中实现了该方法。该操作在成功时重定向到 root 或在失败时呈现“pages/home”,因此不需要create模板。从我的阅读来看,似乎是在执行 create 之后测试应该通过,而不是之前。

于 2011-08-13T20:26:30.610 回答