简而言之:
问题是在教程中我被告知用它的模型和控制器创建一个 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
答案 0 :(得分:3)
在11.26中实施了create
方法。该操作在成功时重定向到root,或者在失败时呈现'pages / home',因此不需要create
模板。从我的阅读来看,它似乎表明测试应该在创建实现之后通过,而不是之前。