导航栏适用于第一个链接,但是当单击其他链接时,项目将消失

时间:2013-08-09 02:21:28

标签: ruby-on-rails ruby

我想列出一个侧面导航栏。导航应该说视频,然后是步骤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

2 个答案:

答案 0 :(得分: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值,我会看看是否可以弄清楚发生了什么:)

答案 1 :(得分:0)

它可能是step.media_type,它没有给你'视频'并且总是落入'else'块。