问题标签 [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.
javascript - 如何使用 AJAX 切换数据库中的布尔列?
目前正在尝试通过在视图中单击按钮来切换数据库中民意调查的 is_live 属性。这是表单并单击,它不会在参数中发送民意调查数据。
PollsController 中指向此操作的链接
哪个链接到 Poll 模型中的这个方法 我已经在 rails c 中测试过了,它确实切换了布尔值的切换
如何使用所有这些东西通过点击事件切换布尔值?
目前我从服务器日志中收到此错误:
ruby-on-rails - 在 Rails 上使用 ujs 通过远程方法显示表单的消息
我关注了这一集http://railscasts.com/episodes/136-jquery-ajax-revised 并创建了我的 cusotm 示例。我将创建表单放入索引中,并通过远程方法创建一本书
但我不知道如何在页面中放置错误消息。请举个例子,谢谢~
指数
控制器
创建.je.erb
ajax - Rails 3.2 远程表单响应 HTML 而不是 JS
我可能遗漏了一些东西,这是我的问题。
我有一个提交图像的表单,我希望表单使用 AJAX,但在提交时它响应 HTML 格式而不是 JS。为什么POST请求不使用JS格式??我还使用carrierwave上传文件。
在我的控制器中mission_slides_controller.rb
在我的控制器中_form.html.erb
我还为 CREATE 操作创建了一个 JS 部分create.js.erb
感谢您的明智见解
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!
ruby-on-rails - Rails turbolinks 中断提交远程表单
我在使用 Rails 4、Turbolinks 和远程表单时遇到了一个相当奇怪的问题。我有一个看起来像的表格:
此表单添加(创建)一个新对象。然而,它并不总是有效:
- 当我直接使用 URL 或刷新加载页面时;有用
- 当我从我的应用导航到此页面时;它失败
禁用此链接的 Turbolinks 时,该页面运行良好。
我有两个问题:
- 为什么这不起作用?这是因为远程处理程序由于 JQuery/Turbolinks 问题而没有附加到按钮上吗?
- 我该如何解决这个问题?
提前致谢。
解决方案
感谢@rich-peck,解决方案是添加一段javascript,在单击按钮时手动提交表单:
此代码将 javascript 添加到表单表行,获取输入,将它们附加到 ID 并提交表单。preventDefault(); 防止在刷新页面并且表单实际工作时发送两次查询。
ruby-on-rails - 涡轮链接 + UJS。远程表单提交多次
我有以下简单的代码
rails 4.2.1
+turbolinks (2.5.3)
(我没有任何自定义 JS 代码)
我访问了几页,然后按了remote: true
表单上的“提交”按钮。并且提交请求被执行了很多次。
看起来 UJS 已在每个document.ready
或page:load
会是bug吗?还是我做错了什么?
UPD
这是苗条标记中的错字
ruby-on-rails - 使用茧删除远程表单中的嵌套字段时出错
我有一个 simple_form remote: true
。我正在使用 cocoon 向其中添加嵌套字段(此示例中的人)。
除了在特定情况下,这一切都很好。如果我正在编辑一个以前保存到数据库中且只有几个人的表单,我将无法执行以下活动序列:
- 删除一个人
link_to_remove_association
- 通过 ajax 保存更改(记住,
remote: true
) - 进行任何其他更改
- 再次通过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?
ruby-on-rails - 使用 Rails 提交远程表单后,如何将用户重定向到另一个页面?
我正在使用 Rails 4.2.3。我想在模态对话框中提交表单,所以我已经像这样设置了我的表单
但是如果用户成功提交表单,我想重新加载调用模式对话框的页面,并显示“已成功保存”的通知。我不知道我需要在我的“format.js”中放入什么来实现这一点。到目前为止,这就是我在控制器中所拥有的……</p>
现在,当我尝试执行上述操作时,成功提交会导致 500 错误,抱怨缺少部分。很确定我有什么是错的。
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。
所以我添加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
javascript - (Rails)远程表单在更新时以 .js 响应,但在创建时不响应
我的 Rails 应用程序中有一个简单的远程表单逻辑,可以使用 AJAX 响应控制器的新操作、创建操作、编辑操作和更新操作。我的form_for...remote => true
响应是 format.js,但不是我成功的创建操作。我对所有人都使用相同的表单部分,我的更新操作以 .js 响应,而我的创建操作仅在保存不成功时才以 .js 响应。如果我为新项目提交有效表单,应用程序会引发ActionController::UnknownFormat错误。这怎么可能只涉及成功的创建动作?
我有<%= javascript_include_tag 'application' %>
和<%= csrf_meta_tags %>
包含,下面是我的代码:
形式部分:
控制器:
创建.js.erb:
服务器:
谢谢!