我有一个名称,电子邮件,密码和生物的用户模型。
我想要两种编辑形式。一个用于编辑电子邮件,另一个用于编辑密码。
所以我的问题实际上是两部分。
A)如果update_attributes
在更新方法中失败,那么如何呈现正确的页面,而不仅仅是edit
。这是我目前的更新方法。
def update
if @user.update_attributes(params[:user])
flash[:success] = "Profile updated"
sign_in @user
redirect_to @user
else
render 'edit'
end
end
B)如何为change_password方法设置/users/1/edit
之类的路由?所以我想要/users/1/change_password
。
B)match '/users/:id/change_password', to: 'users#change_password'
完成了这项工作。
答案 0 :(得分:1)
redirect_to edit_user_path(@user)
应该工作。
此外,我会将您的change_password路线更改为:
resource :users do
member do
put 'change_password'
end
end
这是一种更为Rails-y的做事方式。然后,你可以做
redirect_to change_password_user_path(@user)