2012-12-23 56 views
0

我的索引文件中包含以下HTML。如何在HTML文檔中使用Ruby

<% @posts.each_with_index do |post, index| %> 
    <tr> 
    <td><%= index+1 %></td> 
    <td><%= post.team_elo %></td> 
    <td><%= post.team_name %></td> 
    </tr> 
<% end %> 

我有一個名爲is_eligible函數,它接受post.team_name作爲參數。我想運行它每一個「做迭代」,並跳過所有的三個印刷步驟如果返回false

我不知道如何

  1. 包括文件is_eligible是在和
  2. 結構的代碼在某處的HTML內。

任何想法?

回答

4
# The view 
<% @posts.each_with_index do |post, index| %> 
    <% unless post.is_eligible? %> 
    <tr> 
     <td><%= index+1 %></td> 
     <td><%= post.team_elo %></td> 
     <td><%= post.team_name %></td> 
    </tr> 
    <% end %> 
<% end %> 

# The model post.rb 
def is_eligible? 
    # and there you use self.name to access the name 
end 
+0

托馬斯,這看起來像它應該是工作給我。我刪除了參數is_eligible?並做出是否有資格? post.rb.的一部分正如你所建議的,我現在也在使用self.name來訪問。但我仍然得到:未定義的方法'is_eligible?'爲零:NilClass。 –

+0

我得到它的工作。謝謝托馬斯。在@ post.is_eligible中不需要@ –

+0

噢,對不起,我的錯誤。 :) –

1
<% @posts.select{|p| is_eligible(p. team_name)}.each_with_index do |post, index| %> 
    <tr> 
    <td><%= index+1 %></td> 
    <td><%= post.team_elo %></td> 
    <td><%= post.team_name %></td> 
    </tr> 
<% end %>