如何让远程表单中的redirect_to工作?

我有一个表单,我的目标是

  • 如果表单提交成功……重定向到主页。
  • 如果表单提交不成功……在bootstrap模态中显示错误信息。

如果我用普通形式(不是远程)

    <%= form_with model: @car, id: "car-form", local: true do |f| %>

然后redirect_to工作,但我在action.js.erb中写的bootstrap modal的代码没有执行。

如果我使用远程形式

    <%= form_with model: @car, id: "car-form", remote: true do |f| %>

然后redirect_to停止工作,但我在action.js.erb中写的bootstrap modal的代码正在执行。

我需要这两个功能……有什么办法吗?

解决方案:

有几件事需要注意。

1) form_with 是一个 remote: true 默认情况下。当你通过 local 那么它就是一个非ajax形式。看看这个 形式_有参考价值

2)如果你想打你的 action.js.erb 然后在你的控制器中,你调用 format.js

一种方式。

def action_name
  @foo = Foo.bar

  respond_to do |format|
    if @foo.errors.any?
      format.js
    else
      format.html { redirect_to :index }
    end
  end
end

另一种方式

Your controller action
----------------------
def action_name
  @foo = Foo.bar

  respond_to do |format|
    format.js
  end
end


action.js.erb
----------------

<% if @foo.errors.count > 0 %>
  your modal with errors in it
<% else %>
  window.location.href='<%= url_for(:action => :index) %>'
<% end %>

给TA打赏
共{{data.count}}人
人已打赏
未分类

在SSR中不存在的翻译键,没有语言回退。

2022-9-8 0:44:20

未分类

使用Rust中的`tokio-rustls`从TlsStream<TcpStream>读取。

2022-9-8 0:44:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索