这是我的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
...
我有以下观点/用户:
每当我尝试更新用户帐户设置时,都会弹出以下内容:
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
的错,你是好奇的。这是控制器。我做错了什么?感谢。
答案 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