2010-11-25 54 views
0

這是我users_controller.rb代碼:在Rails中找不到視圖模板?

... 
    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

每次我嘗試更新我的用戶帳戶設置,以下彈起:

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

首先,如果你想更新動作返回:節目,你應該改變

render :action => 'edit' 

render :action => 'show' 

否則,當然它會尋找edit.html.erb或edit.erb其次,如果你使用'show'來讓用戶編輯他/她的信息,爲什麼你實際上在你的控制器中有:edit動作?如果您不使用它,您應該刪除以下內容:

def edit 
    @user = @current_user 
end 
2

,除非你告訴edit方法來渲染其他東西或重定向到一些地方,默認的是,它會尋找edit.erb的模板......

+0

我的用戶在「show.html.erb」中更新他們的詳細信息。我如何讓控制器保存並重定向到那裏?謝謝。 – Victor 2010-11-25 06:27:59