AJAX / jQuery を使用して、テーブルの行を追加、削除、および更新しようとしています。追加および削除機能は正常に機能します。ただし、行を更新しようとすると、フォームはパッチ要求を作成しません (または実際には何もしません - サーバー ログ、JS コンソール、またはネットワーク アクティビティにアクティビティはありません。行の場合、ユーザーはボタンをクリックして、更新フォームを含む行ですが、フォームでデータが変更され、ユーザーが送信をクリックしても何も起こりません.テーブルからフォームを取り出すと、それは機能します.テーブルでこれを行うことに問題はありますか?助けてくれてありがとう!
これが私が使用しているform_tagです。
<tr id = <%= "site_#{@site.id}" %>
<%= form_tag site_url(@site.id), method: "patch", remote: true, id: "site_form_#{@site.id}" do %>
<td><%= link_to (image_tag @site.favicon), "http://www.#{@site[:company].delete(" ")}.com", target: "_blank" %><%= text_field_tag :company, @site.company %></td>
<td><%= text_field_tag :username_sb, (@site.username_sb.decrypt ENV['SB_DECRYPT']) %></td>
<td><%= text_field_tag :pwhint_sb, (@site.pwhint_sb.decrypt ENV['SB_DECRYPT']) %></td>
<% hidden_field_tag :id, @site.id %>
<td><%= button_tag "Submit", class: "btn btn-inverse" %></td>
<td></td>
<% end %>
</tr>
これが挿入されるテーブル全体です。
<div class= "row-fluid">
<div class= "span10 offset1">
<table class="table table-hover table-condensed">
<thead>
<tr>
<th>Company</th>
<th>Username</th>
<th>Password hint</th>
<th> </th>
<th> </th>
</tr>
</thead>
<tbody>
<tr id="add">
<%= render 'form_new', :site => Site.new %>
</tr>
<% @sites_sort.each do |site| %>
<%= render 'site', :site => site %>
<% end %>
</tbody>
</table>
行を編集フォームに変換するために使用しているjQueryを次に示します。
$('#site_<%= @site.id %>').replaceWith('<%= escape_javascript(render 'edit_one_form') %>');
ビューを更新するために使用しているjQueryを次に示します。(このコードには決して到達しませんが)
$('#site_<%= @site.id %>').replaceWith('<%= escape_javascript(render 'site', :site => @site) %>');