我似乎無法得到這個循環正確紅寶石環路問題
@mr = MediaRating.where("user_id = ?", session['user_credentials_id'])
unless @mr.empty?
@mr.each do |rating|
@m = Media.where("id = ?", rating.media_id)
@m.each do |m|
@history << m
end
end
end
工作在MediaRating表只有3個數據的測試行,但是當我在屏幕上輸出的數據@history
數組包含9個條目。我知道它與我在循環中做錯了什麼有關,但無法弄清楚。
工作代碼
查看:
<!-- For Each -->
<% unless @history.empty? %>
<% @history.each do |m| %>
<tr class="control_result_row">
<td class="control_result"><%= m.first.title %></td>
<td class="control_result">Russian</td>
</tr>
<% end %>
<% else %>
<tr class="control_result_row">
<td class="control_result" colspan="2">You have no ratings logged</td>
</tr>
<% end %>
<!-- End For Each -->
控制器:
@mr = MediaRating.where("user_id = ?", session['user_credentials_id'])
@mr.each do |rating|
@m = Media.where("id = ?", rating.media_id)
@history << @m
end
媒體包含什麼?在嵌套Media.where調用 – 2010-12-22 02:04:19
之後檢查@m包含的內容:使用嵌入式「除非/ else」邏輯的ERB。當我執行代碼評論或處理其他人的代碼時,我更喜歡在代碼中看不到該代碼組合。我發現組合使我的大腦降檔,以弄清楚發生了什麼,因爲我解釋了「除非」中暗示的「不」。見約翰Nunemaker的[「除非,濫用Ruby有條件」](http://railstips.org/blog/archives/2008/12/01/unless-the-abused-ruby-conditional/)文章。 – 2010-12-22 05:41:31