当用户返回到表单以更正错误时,如何防止浏览器栏中的URL更改?

7 ruby url redirect controller ruby-on-rails-5

我正在使用Rails 5.我有一个页面,用户可以更新他们的个人资料,如果出现问题,他们会返回到页面

  def update
    @user = current_user
    if @user.update_attributes(user_params)
      …
      redirect_to url_for(:controller => ‘main’, :action => 'index') and return
    end

    render 'edit'
  end
Run Code Online (Sandbox Code Playgroud)

问题是,当它们返回到原始页面时,浏览器栏中的URL显示为" http:// localhost:3000/users/51 ",这不是他们访问的原始URL(即" http: // localhost:3000/users/edit ").如何让URL保持与原来的相同?

编辑:这是我运行rake路线时产生的

           edit_users GET    /users/edit(.:format)                      users#edit
                users GET    /users(.:format)                           users#index
                      POST   /users(.:format)                           users#create
             new_user GET    /users/new(.:format)                       users#new
            edit_user GET    /users/:id/edit(.:format)                  users#edit
                 user GET    /users/:id(.:format)                       users#show
                      PATCH  /users/:id(.:format)                       users#update
                      PUT    /users/:id(.:format)                       users#update
                      DELETE /users/:id(.:format)                       users#destroy
Run Code Online (Sandbox Code Playgroud)

jph*_*eos 2

你可以使用这个语法:

redirect_to :back
Run Code Online (Sandbox Code Playgroud)