问题标签 [remote-forms]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
712 浏览

javascript - 如何使用 AJAX 切换数据库中的布尔列?

目前正在尝试通过在视图中单击按钮来切换数据库中民意调查的 is_live 属性。这是表单并单击,它不会在参数中发送民意调查数据。

PollsController 中指向此操作的链接

哪个链接到 Poll 模型中的这个方法 我已经在 rails c 中测试过了,它确实切换了布尔值的切换

如何使用所有这些东西通过点击事件切换布尔值?
目前我从服务器日志中收到此错误:

0 投票
1 回答
347 浏览

ruby-on-rails - 在 Rails 上使用 ujs 通过远程方法显示表单的消息

我关注了这一集http://railscasts.com/episodes/136-jquery-ajax-revised 并创建了我的 cusotm 示例。我将创建表单放入索引中,并通过远程方法创建一本书

但我不知道如何在页面中放置错误消息。请举个例子,谢谢~

指数

控制器

创建.je.erb

0 投票
1 回答
400 浏览

ajax - Rails 3.2 远程表单响应 HTML 而不是 JS

我可能遗漏了一些东西,这是我的问题。

我有一个提交图像的表单,我希望表单使用 AJAX,但在提交时它响应 HTML 格式而不是 JS。为什么POST请求不使用JS格式??我还使用carrierwave上传文件。

在我的控制器中mission_slides_controller.rb

在我的控制器中_form.html.erb

我还为 CREATE 操作创建了一个 JS 部分create.js.erb

感谢您的明智见解

0 投票
2 回答
1272 浏览

ruby-on-rails-4 - Rails 4 remote form issues bad request (ParamsParse::ParseError)

I have a problem with my remote form in rails 4 using simple form. It works perfectly when I use it without AJAX but as soon as I set remote to true rails throws an ActionDispatch::ParamsParser::ParseError saying unexpected token at 'utf8=%E2%9C%93&...'.

I have no clue, what could be causing this but it's probably something really stupid, since I seem to be the only one having it :)

This is the form tag I'm using:

And this is the trace rails returns to me:

Thank you very much for your help!

0 投票
2 回答
8598 浏览

ruby-on-rails - Rails turbolinks 中断提交远程表单

我在使用 Rails 4、Turbolinks 和远程表单时遇到了一个相当奇怪的问题。我有一个看起来像的表格:

此表单添加(创建)一个新对象。然而,它并不总是有效:

  • 当我直接使用 URL 或刷新加载页面时;有用
  • 当我从我的应用导航到此页面时;它失败

禁用此链接的 Turbolinks 时,该页面运行良好。

我有两个问题:

  1. 为什么这不起作用?这是因为远程处理程序由于 JQuery/Turbolinks 问题而没有附加到按钮上吗?
  2. 我该如何解决这个问题?

提前致谢。

解决方案

感谢@rich-peck,解决方案是添加一段javascript,在单击按钮时手动提交表单:

此代码将 javascript 添加到表单表行,获取输入,将它们附加到 ID 并提交表单。preventDefault(); 防止在刷新页面并且表单实际工作时发送两次查询。

0 投票
0 回答
251 浏览

ruby-on-rails - 涡轮链接 + UJS。远程表单提交多次

我有以下简单的代码

rails 4.2.1+turbolinks (2.5.3)

(我没有任何自定义 JS 代码)

我访问了几页,然后按了remote: true表单上的“提交”按钮。并且提交请求被执行了很多次。

看起来 UJS 已在每个document.readypage:load

会是bug吗?还是我做错了什么?

UPD

这是苗条标记中的错字

0 投票
0 回答
213 浏览

ruby-on-rails - 使用茧删除远程表单中的嵌套字段时出错

我有一个 simple_form remote: true。我正在使用 cocoon 向其中添加嵌套字段(此示例中的人)。

除了在特定情况下,这一切都很好。如果我正在编辑一个以前保存到数据库中且只有几个人的表单,我将无法执行以下活动序列:

  1. 删除一个人link_to_remove_association
  2. 通过 ajax 保存更改(记住,remote: true
  3. 进行任何其他更改
  4. 再次通过ajax保存

一切正常,直到我尝试执行第二次保存,此时我遇到以下错误:

指的Person with ID=33是我在步骤 1 中删除的人。当我检查people表时,在我的数据库中。 Person 33确实消失了(表明我在第 2 步中的保存很好)。我对正在发生的事情的解释是,在保存删除后,远程表单忘记了它Person 33已经消失并在下一次保存时寻找他。

remote: false绝对清楚,如果我在第 2 步和第 3 步之间刷新页面,则没有问题。

有人对此有一个解决方案的猜测吗?非常感谢任何试一试的人。

编辑
经过进一步研究,cocoon 似乎并不是为处理 ajax 提交而构建的。然而,这似乎可以通过异步替换 dom 中的元素来解决。该评论仅提供所用过程的摘要。我猜他们做了类似<%= escape_javascript(render(:partial => _person_fields.html.erb)) %> 但是我不熟悉的局部异步渲染。我想我必须从 dom 中删除当前的部分,然后加载它的新版本。这是正确的想法吗?如果是这样,删除旧部分的最佳方法是什么,只是直接的 jquery?

0 投票
5 回答
7506 浏览

ruby-on-rails - 使用 Rails 提交远程表单后,如何将用户重定向到另一个页面?

我正在使用 Rails 4.2.3。我想在模态对话框中提交表单,所以我已经像这样设置了我的表单

但是如果用户成功提交表单,我想重新加载调用模式对话框的页面,并显示“已成功保存”的通知。我不知道我需要在我的“format.js”中放入什么来实现这一点。到目前为止,这就是我在控制器中所拥有的……</p>

现在,当我尝试执行上述操作时,成功提交会导致 500 错误,抱怨缺少部分。很确定我有什么是错的。

0 投票
1 回答
272 浏览

ruby-on-rails - NameError 将 config.action_view.embed_authenticity_token_in_remote_forms 添加到 true

我在我的 Rails 应用程序上处理 ajax,但出现 ActionController::InvalidAuthenticityToken 错误。

我读了这个

config.action_view.embed_authenticity_token_in_remote_forms 允许您在带有 remote: true 的表单中设置authenticity_token 的默认行为。默认情况下,它设置为 false,这意味着远程表单将不包含authentity_token,这在您对表单进行片段缓存时很有帮助。远程表单从元标记中获取真实性,因此除非您支持没有 JavaScript 的浏览器,否则嵌入是不必要的。在这种情况下,您可以将authentity_token: true 作为表单选项传递,或者将此配置设置设置为true。

来自RailsGuides

所以我添加config.action_view.embed_authenticity_token_in_remote_forms=true到 \config\application.rb

并重新启动rails服务器,然后发生错误

/Users/haha/railsbridge/railsfun/ruby12weeks/eat/config/application.rb:5:in':未定义的局部变量或方法配置'为 main:Object (NameError)

我是不是放错地方了?

这是我的github

0 投票
0 回答
356 浏览

javascript - (Rails)远程表单在更新时以 .js 响应,但在创建时不响应

我的 Rails 应用程序中有一个简单的远程表单逻辑,可以使用 AJAX 响应控制器的新操作、创建操作、编辑操作和更新操作。我的form_for...remote => true响应是 format.js,但不是我成功的创建操作。我对所有人都使用相同的表单部分,我的更新操作以 .js 响应,而我的创建操作仅在保存不成功时才以 .js 响应。如果我为新项目提交有效表单,应用程序会引发ActionController::UnknownFormat错误。这怎么可能只涉及成功的创建动作?

我有<%= javascript_include_tag 'application' %><%= csrf_meta_tags %>包含,下面是我的代码:

形式部分:

控制器:

创建.js.erb:

服务器:

谢谢!