0

サイド ナビゲーション バーを一覧表示しようとしています。ナビゲーションにはビデオが表示され、その後にステップ 1、ステップ 2、ステップ 3 が表示されます。正常に動作し、表示されますが、奇妙なことに、ビデオからステップ 1 に移動すると、代わりにステップ 0、ステップ 1、ステップ 2、ステップ 3 と表示されます。 . ステップ 3 に進むと、何も表示されません。以下の私のコードに何か問題があります。助けていただければ幸いです。

<% @step_list.each_with_index do |step, i| %>

  <% case step.media_type %>
  <% when 'video' %>
        <li class="active">
          <span class="glow"></span>
          <a href="<%= i %>">
              <i class='icon-info-sign icon-2x'></i>
              <span>Video</span>
          </a>
        </li>


  <% when 'excel' %>
        <li class="">
          <span class="glow"></span>
          <a href="<%= i %>">
              <i class="<%= icon[i] %> icon-2x"></i>
              <span>Step <%= i %> </span>
          </a>
        </li>

   <% else %>

        <li class="dark-nav ">
          <span class="glow"></span>
         <a href="<%= i %>">
              <i class="<%= icon[i] %> icon-2x"></i>
              <span>Step <%= i %></span>
          </a>
        </li>

  <% end %>   
<% end %>

これが私のステップコントローラーです

class StepsController < ApplicationController   

def show
    @level = Level.find(params[:id])
    @step = Step.find(params[:id])
    @step_list = @level.steps
end

end
4

2 に答える 2

1

パラメータはであるため、アクションParameters: {"course_id"=>"1", "level_id"=>"1", "id"=>"1"}のこの行を次のように更新する必要があります。 show@level = Level.find(params[:level_id])

この問題をデバッグする方法は次のとおりです。

コントローラ:

def show
    @level = Level.find(params[:id])
    @step = Step.find(params[:id])
    @step_list = @level.steps
    puts "**************************************"
    puts "VALUE OF @step_list in controller"
    puts @step_list
end

調べても問題を解決できない場合は、質問@step_listに値を貼り付けて@step_listください。何が起こっているのかを理解できるかどうかを確認します:)

于 2013-08-09T13:09:45.093 に答える
0

「ビデオ」を提供せず、常に「else」ブロックに分類される step.media_type である可能性があります。

于 2013-08-09T02:49:21.147 に答える