加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用Rails提交远程表单后,如何将用户重定向到

发布时间:2020-12-17 03:57:01 所属栏目:百科 来源:网络整理
导读:我正在使用Rails 4.2.3.我想在模态对话框中提交一个表单,所以我已经设置了我的表单 %= form_for @my_object,:remote = true do |f| % 但是如果用户成功提交表单,我想重新加载调用模态对话框的页面,并注意“已成功保存”.我无法弄清楚我需要在“format.js”中
我正在使用Rails 4.2.3.我想在模态对话框中提交一个表单,所以我已经设置了我的表单

<%= form_for @my_object,:remote => true do |f| %>

但是如果用户成功提交表单,我想重新加载调用模态对话框的页面,并注意“已成功保存”.我无法弄清楚我需要在“format.js”中添加什么才能生成这发生了.到目前为止,这就是我在控制器中所拥有的……

def create
    @my_object = MyObject.new(my_object_params)
    @current_user = User.find(session["user_id"])
    @my_object.user = @current_user
    respond_to do |format|
      if @my_object.save
        format.html { redirect_to controller: "users",action: "index",notice: 'Saved successfully.' }
        format.js   { render action: ‘../users/index’,notice: ‘Saved Successfully’,location: @my_object }
      else
        format.html { render action: "index" }
        format.js   { render json: @my_object.errors,status: :unprocessable_entity }
      end
    end
  end

现在,当我尝试执行上述操作时,成功提交会导致500错误,抱怨缺少部分错误.无论如何,很确定我的错误.

解决方法

您可以执行以下操作:

#app/controllers/redirect.rb
...

format.js { render js: "window.location='#{url.to_s}'" }

...

如果你想保持分离,只需将format.js放在你的控制器中,然后在你的视图中进行javascript重定向(redirect.js.erb)

在这两种情况下,只需将flash [:notice]设置为重定向前所需的任何内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读