0

私は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 %>

私は今ちょっとアイデアがありません...誰かが理由を知っていれば、彼は大歓迎です、ありがとう:)

4

1 に答える 1