Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用ruby通过helper方法激活类-变量中的错误_Ruby On Rails_Ruby_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 使用ruby通过helper方法激活类-变量中的错误

Ruby on rails 使用ruby通过helper方法激活类-变量中的错误,ruby-on-rails,ruby,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3.2,我的coffeescript一直存在问题,因此我希望在单击时使用ruby使我的类在视图中处于活动状态。我创建了一个名为nav“active”的助手方法,并且在视图中有一个名为“link”的变量,该变量在每个步骤中递增。其思想是让params[:id]==link,并在这种情况下激活该类。然而,由于rails和ruby较新,我不确定如何实现这一点。任何帮助都将不胜感激 我的错误 undefined local variable or method `link' for #<#<Cla

我的coffeescript一直存在问题,因此我希望在单击时使用ruby使我的类在视图中处于活动状态。我创建了一个名为nav“active”的助手方法,并且在视图中有一个名为“link”的变量,该变量在每个步骤中递增。其思想是让params[:id]==link,并在这种情况下激活该类。然而,由于rails和ruby较新,我不确定如何实现这一点。任何帮助都将不胜感激

我的错误

 undefined local variable or method `link' for #<#<Class:0x007fb21e087820>:0x007fb21e53fd18>
我的看法

     <% icon= ["icon-link", "icon-bar-chart", "icon-edit", "icon-beaker","icon-link", "icon-bar-chart", "icon-edit", "icon-beaker"] %>
    <% link = 0 %>

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

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


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

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

<% end %>   



  • 辅助方法
    导航激活
    无法访问视图中的局部变量。你必须把它作为一个论点来传递

    # Helper
    def nav_active(link)
      return "active" if params[:id] == link
    end
    
    此帮助程序现在接受名为
    link
    的参数。现在将在helper方法中定义
    link

    <% link += 1 %>
    <li class="dark-nav <%= nav_active link %> ">
    
    
    

  • 在视图中,您还必须传入link的当前值,以便helper方法可以对其进行操作。

    helper方法
    nav\u active
    无法访问视图中的局部变量。你必须把它作为一个论点来传递

    # Helper
    def nav_active(link)
      return "active" if params[:id] == link
    end
    
    此帮助程序现在接受名为
    link
    的参数。现在将在helper方法中定义
    link

    <% link += 1 %>
    <li class="dark-nav <%= nav_active link %> ">
    
    
    

  • 在视图中,您还必须传入link的当前值,以便helper方法可以对其进行操作。

    hmm这消除了错误,允许链接通过,但当链接处于活动状态时,不会实际发送“active”。我不确定params[:id]是否有问题-这是我的参数:{“course\u id”=>“1”,“level\u id”=>“1”,“id”=>“1”}这可能是因为
    link
    是一个数字,
    params[:id]
    是一个字符串。所以试着强迫他们两个都使用字符串
    if params[:id].to_s==link.to_s
    hmm这消除了错误,它允许链接通过,但当链接处于活动状态时,不会实际发送“active”。我不确定params[:id]是否有问题-这是我的参数:{“course\u id”=>“1”,“level\u id”=>“1”,“id”=>“1”}这可能是因为
    link
    是一个数字,
    params[:id]
    是一个字符串。所以试着强迫他们两个都使用字符串<代码>如果参数[:id].to_s==link.to_s