首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使redirect_to以远程形式工作?

如何使redirect_to以远程形式工作?
EN

Stack Overflow用户
提问于 2020-04-23 10:58:15
回答 2查看 54关注 0票数 0

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

  • 如果表单提交为successful...redirect,则为主页
  • 如果表单提交是引导模式中的unsuccessful....show错误消息

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

代码语言:javascript
代码运行次数:0
运行
复制
    <%= form_with model: @car, id: "car-form", local: true do |f| %>

那么redirect_to正在工作,但是我用action.js.erb编写的引导模式代码没有执行。

如果我用远程格式

代码语言:javascript
代码运行次数:0
运行
复制
    <%= form_with model: @car, id: "car-form", remote: true do |f| %>

然后redirect_to停止工作,但我用action.js.erb编写的引导模式代码正在执行。

我需要both...Is,有什么办法吗?

EN

回答 2

Stack Overflow用户

发布于 2020-04-23 13:44:08

几乎没有什么值得注意的:

1)默认情况下,form_with是一个remote: true。当您传递local时,它是一个非ajax形式。看看这个有参考

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

单程:

代码语言:javascript
代码运行次数:0
运行
复制
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

另一种方式是:

代码语言:javascript
代码运行次数:0
运行
复制
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 %>
票数 0
EN

Stack Overflow用户

发布于 2020-04-23 15:14:23

正如@Sri上面所写的,您可能因format而不同,或者以最简单的方式使用flash Rails提供的方法在flash.now的相同请求中显示flash方法

因此,编写一个表单local: true并在控制器中:

代码语言:javascript
代码运行次数:0
运行
复制
if @foo.save
  render 'something_new'
else
  flash.now[:error] @foo.errors.map(&:message).join(', ')
  render 'edit' // render the same view with form
end

(或者做类似的操作以获得正确的错误消息或您自己的消息)

接下来,您可以将它显示在表单上,作为一个模式:

代码语言:javascript
代码运行次数:0
运行
复制
<% if flash.any? %>
  <div class='modal'>
  ...
    <% flash.each do |key, value| %>
      <div class="flash <%= key %>"><%= value %></div>
    <% end %>
  </div>
<% end %>

也使模态在开始时可见。

代码语言:javascript
代码运行次数:0
运行
复制
$(".modal").modal('show')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61385561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档