我试图更新设备的用户帐户,而无需在每次更改用户帐户时更改密码。要做到这一点,我需要更改update_resource
方法,但我得到的是DoubleRenderErrror
,而且我不确定如何解决这个问题。
这是我的代码:
controller do
protected
def update_resource(resource, params)
if params.first[:password].blank?
resource.update_without_password(params.first)
else
resource.update_attributes(params.first)
end
if resource.errors.blank?
redirect_to admin_users_path, :notice => "User updated successfully."
else
render :edit
end
end
end
答案 0 :(得分:1)
尝试使用redirect_to admin_users_path, :notice => "User updated successfully."
替换现有代码return redirect_to admin_users_path, :notice => "User updated successfully."
。我希望这会有所帮助。
答案 1 :(得分:0)
我的错误是认为我覆盖的方法update_resource
是update
方法的覆盖本身,当它不是,因此,它正在运行我的覆盖,然后运行{{1}因此,方法渲染/重定向两次。
删除所有渲染/ redirect_to东西解决了这个问题。
我在GitHub上看到this issue后发现了我的错误,特别是这段代码:
update
如您所见,update方法和update_resource方法是不同的方法。