【问题标题】:remote true not working in form in rails2.3.8remote true 在 rails2.3.8 中无法正常工作
【发布时间】:2012-10-17 10:16:21
【问题描述】:

我正在使用 ruby​​ 1.8.7。我刚刚编写了一个简单的表单,它使用远程 true 将 ajax 请求发送到某些操作,但它似乎不起作用!

我已经包含了 jquery1.6.3.js 和 rails.js。表格很简单,看起来像这样:

<% form_tag("/click_button", :remote => true) do %>
  <%= text_field_tag "something" %>
  <%= submit_tag "Add" %>
<% end %>

click_button 方法只是渲染js

def click_button
  respond_to do |format|
    format.js
  end
end

问题在于,当我单击按钮时,在 firebug 的控制台中看不到任何请求,而是将页面重定向到 /click_button.erb 并且它提供了一个丢失的错误模板。谁能帮我解决这个问题?

[已编辑] 生成的html代码是这样的:

<form remote="true" method="post" action="/data_management/add_configuration_data">
  <input id="something" type="text" name="something">
  <input type="submit" value="Add" name="commit">
</form>

【问题讨论】:

  • jquery 1.6?那是很老了!这是在铁轨上的红宝石还是类似的东西?如果是,请相应地标记问题。并请在您的问题中包含生成的 HTML 代码
  • Rails 2?那不是使用 remote_form_for 或类似的东西吗?
  • 是的,它是 ruby​​ on rails。我将 jquery 更改为 1.8.2,但仍然是重定向而不是发送 ajax 请求。 -查看生成的html代码的编辑部分
  • 任何人回答对您有帮助然后接受该回答

标签: ruby-on-rails ajax forms


【解决方案1】:

似乎远程处理程序未附加到表单。仔细检查

  1. jQuery 库是从页面链接的,并确保链接有效。有时拼写错误。打开源代码并检查它。
  2. rails.js 文件是从页面链接的,并且链接有效。同上。
  3. 在页眉部分的页面中添加csrf_meta_tag标签

    <%= csrf_meta_tag %>
    

【讨论】:

    【解决方案2】:

    试试这个

      <% form_remote_for :xyz, :url => {:controller => "controller-name", :action => "action-name"} do |f| %>
        <%= text_field_tag "something" %>
        <%= submit_tag "Add" %>
      <% end %>
    

    【讨论】:

      【解决方案3】:

      对于 rails 2.3.8,您必须使用 remote_form_forform_remote_tag 而不是 :remote =&gt; true

      <% remote_form_for("/click_button"e) do %>
        <%= text_field_tag "something" %>
        <%= submit_tag "Add" %>
      <% end %>
      

      【讨论】:

      • 你是 rite 但是 remote_form_for 使用prototype.js而不是jquery.js。它有像 Ajax.request 这样的旧请求。 :(
      【解决方案4】:

      我尝试做类似 remote_true 的操作,但它似乎不起作用,所以我找到了一种通过 javascript 解决此问题的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-21
        • 1970-01-01
        • 2021-04-06
        • 2017-12-11
        • 1970-01-01
        • 1970-01-01
        • 2018-08-26
        • 2019-09-07
        相关资源
        最近更新 更多