Rails 4&设计4:更新配置文件后,将用户保持在当前页面

时间:2017-05-23 19:39:53

标签: ruby-on-rails ruby ruby-on-rails-4 devise

我有一个用户模型,我希望有不同的页面来编辑他们的信息,这样我就不会拥有edit.html.erb上的所有内容

到目前为止,我已为page_content.html.erbdonation_options.html.erb创建了包含我的表单的视图。两者都按预期工作并成功更新我的用户,但在提交表单后,我重定向了用户root,即show.html.erb。我想进行设置,以便用户在更新其个人资料后停留在当前页面上。我不确定是否需要编辑UsersController,或创建新的控制器,或采取不同的方法。

以下是我的表格示例:

<%= form_for @user do |f| %>
              <!--Some inputs-->

              <div class="actions">
                <%= f.submit 'Update', :class => "btn btn-primary"  %>
                <!--After submitting, I'm taken to /users/:id/. I'd like to stay on /users/:id/current_view-->
              </div>
          <% end %>

1 个答案:

答案 0 :(得分:2)

如果您已经拥有UsersController,则应设置与此类似的内容:

Class UsersController < ApplicationController
  def update
    @user = User.find(params[:id])
    if @user.update(user_params)
      redirect_to your_path_here
    end
  end
end

我不确定你的UsersController究竟是什么样的,但这应该会给你一个想法。用户更新后,使用redirect_to和您希望用户发送到的路径。如果您要重定向到当前页面,也可以使用redirect_to :back

请参阅现有的SO post