【问题标题】:Rails 4 & Devise 4: Keep user on current page after updating profileRails 4 & Devise 4:更新配置文件后让用户留在当前页面
【发布时间】:2017-05-23 19:39:52
【问题描述】:

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

到目前为止,我已经为 page_content.html.erbdonation_options.html.erb 创建了视图,上面有我的表单。两者都按预期工作并成功更新了我的用户,但在提交表单后,我被重定向到用户根目录,即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 %>

【问题讨论】:

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


    【解决方案1】:

    如果你已经有一个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

    【讨论】:

    • 太棒了,这是 100% 的答案。谢谢!
    • 很高兴我能帮上忙 :)
    猜你喜欢
    • 2013-12-02
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多