2011-07-22 25 views
2

Fellas!我在Rails 3中創建了我的第一個獨立項目。這主要是爲了練習。我遇到了問題。多個變量之一 - Rails

該網站將關於塔羅牌預測。在一個表格中,我要求甲板和傳播形成。在控制器中,我抓住這個並放入一些變量。比我必須在視圖上列出它。

問題是: 我有(前)10個位置的卡片。我想用一個位置描述列出一張卡片描述。在我的解決方案中,我爲位置描述構建了一個數組,並將這些卡放入循環中。比我在for的每一步移出陣列的位置。 在代碼:

<% for cardnum in @cardnums 
@cp = @card_positions.shift 
@card = Card.find_by_id(cardnum) 
%> 
Writing out the data 
<% end %> 

但是我覺得有更漂亮和聰明的解決方案。

有可能做兩個變量的循環?或者其他任何好的解決方案

你的, 凱爾

回答

5

我完全不明白你正在嘗試做的,但

兩個變量

如果你的意思是在上兩個數組迭代週期一次,Array#zip可以是有幫助的。你可以這樣做:

a = [1,2,3]   # use card_position array 
b = %w{a b c}  # use cards array 
c = a.zip(b)  #=> [[1, "a"], [2, "b"], [3, "c"]] 

# you can do 
c.each do |cp, card| 
    # do something with card_position(cp) and card 
end 
+0

這個array#zip看起來不錯!有沒有其他想法來解決這樣的問題? (擦亮瞭解我的問題!) – Kael

+0

多一邊的問題!我不知道爲什麼你在第二行使用%w。那個有什麼用? – Kael

+0

這只是寫不帶引號的字符串數組的簡短手段。 – rubish