[英]Using ruby to make a class active via helper method - error in variables
我的coffeescript一直存在問題,因此我想使用ruby在單擊時使我的類在視圖中處於活動狀態。 我創建了一個名為nav“ active”的助手方法,並且在視圖中有一個名為“ link”的變量,該變量會為每個步驟遞增。 這個想法是要有params [:id] == link,並在這種情況下使該類處於活動狀態。 但是,對於Rails和ruby較新,我不確定如何實現這一點。 任何幫助,將不勝感激。
我的錯誤
undefined local variable or method `link' for #<#<Class:0x007fb21e087820>:0x007fb21e53fd18>
應用程序助手中的“我的方法”
def nav_active(options = {})
return "active" if params[:id] == link
end
我的觀點
<% 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 %>
輔助方法nav_active
無法訪問視圖中的局部變量。 您必須將其作為參數傳遞。
# Helper
def nav_active(link)
return "active" if params[:id] == link
end
現在,該幫助器接受名為link
的參數。 現在, link
將在helper方法中定義。
<% link += 1 %>
<li class="dark-nav <%= nav_active link %> ">
在視圖中,您還必須傳入鏈接的當前值,以便helper方法可以對其進行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.