Ruby on rails ActionView::MissingTemplate:ActionView::MissingTemplate:缺少具有{:locale=>;[:en],:formats=>;[:html]的模板/成员,
集成测试返回“缺少模板”错误。Ruby on rails ActionView::MissingTemplate:ActionView::MissingTemplate:缺少具有{:locale=>;[:en],:formats=>;[:html]的模板/成员,,ruby-on-rails,model-view-controller,tdd,Ruby On Rails,Model View Controller,Tdd,集成测试返回“缺少模板”错误。/members上的microposts\u接口\u test.rb错误。这可能是因为/members视图使用MicropostsController,但我不确定如何修复测试 ERROR["test_micropost_interface", MicropostsInterfaceTest, 2015-06-19 06:40:32 +0800] test_micropost_interface#MicropostsInterfaceTest (1434667232
/members
上的microposts\u接口\u test.rb
错误。这可能是因为/members视图使用MicropostsController,但我不确定如何修复测试
ERROR["test_micropost_interface", MicropostsInterfaceTest, 2015-06-19 06:40:32 +0800]
test_micropost_interface#MicropostsInterfaceTest (1434667232.75s)
ActionView::MissingTemplate: ActionView::MissingTemplate: Missing template /members with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :haml, :jbuilder]}. Searched in:
* "/home/me/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/action_dispatch/templates"
* "/home/me/Development/my_app/app/views"
* "/home/me/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/app/views"
* "/home/me/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/phrasing-4.0.0rc9/app/views"
app/controllers/microposts_controller.rb:14:in `create'
test/integration/microposts_interface_test.rb:16:in `block (2 levels) in <class:MicropostsInterfaceTest>'
test/integration/microposts_interface_test.rb:15:in `block in <class:MicropostsInterfaceTest>'
app/controllers/microposts_controller.rb:14:in `create'
test/integration/microposts_interface_test.rb:16:in `block (2 levels) in <class:MicropostsInterfaceTest>'
test/integration/microposts_interface_test.rb:15:in `block in <class:MicropostsInterfaceTest>'
在MicropostController中的创建操作中,使用
呈现“成员/索引”
而不是呈现成员\u路径
。请注意,呈现不会加载成员/索引中所需的变量,它只加载模板,因此添加@microspost=[]
,就像对@feed\u items=[]所做的那样
这样,如果您从视图中调用这些变量,您就不会出现“找不到变量@microposts”的错误。或者您可以简单地重定向到成员路径
,这对我很有用:
render template: 'template', formats: [:html]
你能为那个特定的url发布你的操作方法代码吗?你能确保特定的操作方法有一个操作视图文件吗?你能发布你的microposts控制器吗?@LuisMenjivar,我已经添加了microposts控制器。
# controller/members_controller.rb
class MembersController < ApplicationController
before_filter :logged_in_user
def index
@micropost = current_user.microposts.build
@feed_items = current_user.feed.paginate(page: params[:page])
end
end
# controller/microposts_controller.rb
class MicropostsController < ApplicationController
before_action :logged_in_user, only: [:create, :destroy]
before_action :correct_user, only: :destroy
def create
@micropost = current_user.microposts.build(micropost_params)
if @micropost.save
flash[:success] = "Micropost created!"
redirect_to members_path
else
@feed_items = []
render members_path
end
end
def destroy
@micropost.destroy
flash[:success] = "Micropost deleted"
redirect_to request.referrer || members_path
end
private
def micropost_params
params.require(:micropost).permit(:content, :picture)
end
def correct_user
@micropost = current_user.microposts.find_by(id: params[:id])
redirect_to members_path if @micropost.nil?
end
end
render template: 'template', formats: [:html]