多くのレコードを持つPainting
というモデルがあります。私はそれらをすべて印刷しています。それぞれについて、いくつかのjQueryを添付して、各ペイントをクリックすると、大きなバージョンのペイントが部分的にレンダリングされます。クリックしたブロック内のどのアイテムに基づいて、異なるバージョンのパーシャルをレンダリングすることができますか?
<div id="viewer"></div>
<% Painting.all.each_with_index do |painting, index| %>
<%= image_tag(painting.path, id:"painting"+index%>
<% @painting = painting %>
<script type="text/javascript">
$("#painting<%=index%>").click(function() {
$("#viewer").html("<%= escape_javascript(render 'partial') %>");
});
</script>
<%end%>
_partial.html.erbは
<%= image_tag(@painting.path, class:"large-painting") %>
<!-- more code -->
問題は、値@painting
は各ループでリセットされ、そして端によってそれが最後の絵画と同じです。したがって、どの絵をクリックしても、最後のものは常に部分的にレンダリングされたものになります。
誰かが、部分的に描画されたペイントを、クリックしたものに対応させる方法を考えてもらえますか、それぞれ個別のjQueryを書く必要はありませんか?
なぜペインティングにペインティングを割り当てていますか?部分的な 'render 'partial'、painting:painting'に渡し、部分的に' painting'変数を使います。 – ddgd