ajaxでrender partialとtableとauthenticity_token
partialで送信フォームをrenderする際に、tableタグを親にformを.html()で描画するとauthenticity_tokenが認識されず送信フォームが機能しなくなる。
色々試すうちにrender partialを実行された際にtableタグ周りの挙動がどうにも不信だった。
たとえば送信フォームをtableタグ内の指定のdivタグ内に設置しようと下記のようなコードをテンプレートhtml.erb書く
<table id="apptable">
<div id="hoge">
<%= render :partial=>"app_list", :locals=>{:apps=>@apps} %>
</div>
</table>
すると実際に生成された.htmlには、本来tableタグに入れ子になっていたdivタグがなぜかtableタグの外に出されていた。
<div id="hoge"></div>
<div style="margin:0;padding:0;display:inline”>…</div>
<table id="apptable">
<tbody>…
</tbody></table>
もしやと思ってテンプレート内の表の描画をやめてdivタグだけにしたらpartialとjsによって設置された送信フォームでも機能するようになった。
authenticity_tokenは記載されていたにも関わらず、tableタグにjsで動的にフォームを設置すると送信フォームが機能しなくなるのかわからずじまい
railsがどのようにしてauthenticity_tokenを認識してるのか学ぶ必要がある
でもrails4だとまた違うのかも