私のアプリは、タグとフィルムのエンティティを扱います: 多対多の関係。参加エンティティは「タガゼーション」と呼ばれます。ユーザーがモーダル ウィンドウで各フィルムにタグを追加できるようにします。そのため、index アクションで、非表示のモーダル ウィンドウを各フィルムのページにレンダリングします。問題は tag_id フィールドにあります。各フォームに Twitter ブートストラップの先行入力テキスト フィールドがあります。これらのフィールドはすべて、共通のクラス「tags-input」を共有しています。テキストフィールドの選択イベントで、set_id 関数が起動されます。
$(document).ready(function() {
function set_id(item, val, text){
$(this).parent().children("#tagazation_tag_id").val(val);
}
$(".tags-input").typeahead({
source: [],
itemSelected: set_id
});
});
set_id 関数は、そのコールバックを起動したテキストフィールドと同じ形式で特定の非表示フィールドを変更することになっていますが、タグ ID には複数の非表示フィールドがあります。set_id 関数がどの映画で起動されるかを正確に知っていれば、もちろん大きな問題にはなりません。
DOM ツリー検索によるブラウジングがまだ機能していない代わりに、この問題に対処するための「標準的な」方法があるはずだと私は信じています。