有多个编辑表单。需要修改更新方法和路由

时间:2012-07-10 03:03:38

标签: ruby-on-rails ruby-on-rails-3 routes

我有一个名称,电子邮件,密码和生物的用户模型。

我想要两种编辑形式。一个用于编辑电子邮件,另一个用于编辑密码。

所以我的问题实际上是两部分。

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'完成了这项工作。

1 个答案:

答案 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)