在Rails中找不到View模板?

时间:2010-11-25 06:03:49

标签: ruby-on-rails

这是我的users_controller.rb代码:

  ...
  def edit
    @user = @current_user
  end

  def update
    @user = @current_user # makes our views "cleaner" and more consistent
    if @user.update_attributes(params[:user])
      flash[:notice] = "Account settings updated."
      redirect_back_or_default account_url
    else
      render :action => 'edit'
    end
  end
  ...

我有以下观点/用户:

  1. new.html.erb
  2. password.html.erb
  3. profile.html.erb
  4. show.html.erb
  5. 每当我尝试更新用户帐户设置时,都会弹出以下内容:

    ActionView::MissingTemplate (Missing template users/edit.erb in view path app/views:vendor/plugins/admin_data/app/views):
      app/controllers/users_controller.rb:46:in `update'
    

    这不是admin_data的错,你是好奇的。这是控制器。我做错了什么?感谢。

2 个答案:

答案 0 :(得分:2)

除非你告诉edit方法渲染其他内容或重定向到某些地方,否则默认情况下它会查找edit.erb的模板......

答案 1 :(得分:2)

首先,如果您希望更新操作返回到:show,则应更改

render :action => 'edit'

render :action => 'show'

否则,它当然会查找edit.html.erb或edit.erb

其次,如果你使用'show'让用户编辑他/她的信息,为什么你实际上在控制器中有:edit动作?如果您不使用它,您应该删除以下内容:

def edit
  @user = @current_user
end