0

我正在使用红宝石 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

问题是当我单击按钮时,在萤火虫的控制台中看不到任何请求,而是将页面重定向到 /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>
4

4 回答 4

1

试试这个

  <% form_remote_for :xyz, :url => {:controller => "controller-name", :action => "action-name"} do |f| %>
    <%= text_field_tag "something" %>
    <%= submit_tag "Add" %>
  <% end %>
于 2012-10-17T10:28:14.183 回答
1

对于 rails 2.3.8 你必须使用remote_form_for ORform_remote_tag代替 :remote => true

<% remote_form_for("/click_button"e) do %>
  <%= text_field_tag "something" %>
  <%= submit_tag "Add" %>
<% end %>
于 2012-10-17T10:28:22.943 回答
1

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

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

    <%= csrf_meta_tag %>
    
于 2012-10-17T11:23:39.457 回答
0

我试图做类似 remote_true 的事情,但它似乎没有用,所以我找到了一种通过javascript解决这个问题的方法。

于 2012-10-17T11:16:53.543 回答