私は2つのモデルを持っています: キャンバスとブロック
9 つのブロックがリンクされているキャンバスがあります。
キャンバス/show.html.erb
<body >
<table class="table canvas" cellspacing=0 >
<tr class="twenty">
<th colspan=2>KP</th>
<th colspan=2>KA</th>
<th colspan=2>VP</th>
<th colspan=2>CR</th>
<th colspan=2>CS</th>
</tr>
<tr class="twenty" >
<td rowspan=3 colspan=2 >
<%= render :partial => @blocks[0], :locals => { :id_block => 0 } %>
</td>
(...)
</table>
</body>
これが私のコントローラーです:
class CanvasController < ApplicationController
before_filter :authenticate_user!
def show
@blocks=Array.new
9.times do |acc|
@blocks << Block.find_or_create_by_id_case_and_canvas_id(acc+1,params[:id])
end
end
def index
@canvas=Canvas.all
end
end
各キャンバスで、ブロックに対応するいくつかのパーシャルをレンダリングする必要があります。これらのパーシャルでは、レンダリングしているブロックの ID が必要です。
ブロック/-block.html.erb
<%= id_block %>
問題は、ローカル変数 id_block がこのパーシャルで認識されないことです。
次のようなレンダーを書くためにあらゆる種類の方法を試しました:
<%= render @blocks[0], :id_block => 0 %>
<%= render :partial => "blocks/block", :locals => { :id_block => 0 } %>
<%= render :partial => "blocks/block", :id_block => 0 %>
私は今ちょっとアイデアがありません...誰かが理由を知っていれば、彼は大歓迎です、ありがとう:)