Rails教程:第11章中的ActionView :: MissingTemplate:错误

时间:2011-08-13 19:31:38

标签: ruby-on-rails railstutorial.org

简而言之

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

这是我对该问题的原始,更长时间的描述:

我正在执行railstutorial.org,并在chapter 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

1 个答案:

答案 0 :(得分:3)

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