模板丢失了

时间:2011-06-27 15:14:32

标签: ruby-on-rails

目前正在开展一个项目,遇到过一个我以前从未遇到过的问题。目前正在进行登录注册页面,要求用户注册。之前我有一个未定义的方法`name'error,然后意识到该方法不被称为名称,它被称为full_name。我已经浏览了所有文件夹,以确保任何方法或属性都不称为“名称”,并将其重命名为“full_name”。刷新浏览器后,我收到了以前没见过的错误。有些人可以解释一下这个错误是什么以及我怎么可能解决它。

  

缺少模板

     

缺少模板用户/创建   {:handlers => [:erb,:rjs,:builder,   :rhtml,:rxml],:formats => [:html],   :视图路径中的locale => [:en,:en]}   “C:/用户/ patterd /文件/项目/应用程序/意见”

5 个答案:

答案 0 :(得分:43)

如果您不在控制器的create方法中重定向,则会发生此错误。

您是在重定向控制器中的create方法还是呈现新表单,以防出现错误?

如果没有控制器中create方法的重定向,则需要创建一个名为create.html.erb的新文件。通常,在成功创建后,您将重定向到其他页面,如下所示

def create
  # some object you want to create
  # if the object.save is fine
  #   redirect_to object
  # else
  #   render new with the errors
  # end
end

答案 1 :(得分:21)

在我的情况下,我必须处理并不渲染任何视图。

def return_payment
  # do lots of stuff

  head :ok
end

答案 2 :(得分:2)

我遇到了同样的问题,原因是我意外地离开了其他空的“创造”方法:)

答案 3 :(得分:2)

通常会发生缺少模板错误 - 当你没有该控制器方法的视图文件时,或者 - 如果一个方法只是用于没有任何视图文件的计算,那么您必须渲染/重定向该方法。

如果您不渲染或重定向该方法,它将搜索当前方法名称的视图页面(在您的情况下,它将搜索create.html.erb)。因此,您必须渲染/重定向该方法。

答案 4 :(得分:0)

我遇到了同样的问题,只是添加了redirect_to并且有效!

def update
    @visitor = Visitor.find(params[:id])
    if @visitor.update_attributes(visitor_params)
       flash[:notice] = "Update ok!"
       redirect_to root_path #just added this line and it worked!
    else
       render 'edit'
    end
end