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

可能是 step.media_type 没有给你“视频”并且总是落入“其他”块。

于 2013-08-09T02:49:21.147 回答