eachでループにそれぞれmodalを付ける方法

<エラー内容>

Eachした要素に対してそれぞれmodalで編集機能を実装した際にエラーが発生。

全てのmodalに対してid=1のモーダルが表示されてしまう。

<解決策>

それぞれのmodal IDをuniqueにしなければならない。よって、buttonのdata-target要素、modalのid要素にuniqueになるようにidを加えてあげなければならない。

data-target = #<your modal id><%= project.id %>

~Source~

実際のフォームでのidは、edit_project_<id>になる!!

<form class="edit_project" id="edit_project_1" action="/users/101/projects/1" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="_method" value="patch">

jquery - Displaying a modal for one entry in a .each loop - Rails / Bootstrap - Stack Overflow

 

もう一つ問題が発生。。レスポンスをajaxで受け取る際に、セレクタの指定の仕方がわからない、、

<解決策>

正規表現を使うことで実装成功。

editProject = $('div[id^="#editProject"]')

$(document).on 'ajax:success', editProject, (xhr, data, status) ->location.reload()

とした!

jQueryのセレクタに正規表現・属性フィルタを使う方法! | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト