0

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>
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

レール2.3.8の場合、代わりに remote_form_for ORを使用する必要がありますform_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 に答える