2014-02-21 23 views
0

爲什麼在向數組中添加一個符號後沒有輸出密鑰?爲什麼在向數組中添加符號之後沒有輸出密鑰?

我發現這個question關於如何重命名paperclip中的文件。據我所知,答案顯示一個符號被添加到陣列,所以我一直在rails控制檯中進行試驗。

但是,我遇到了一個問題;當我將:原始符號添加到數組時,我只能看到輸出「原始」而不是兩個鍵。

最接近我來複制我想要的輸出是示例3,但它需要創建一個單獨的變量,然後進入一個循環。

爲什麼不輸出其他兩個鍵?

-------------示例1 ------------------------------- ---------

Photo.first.attachment.styles.keys+[:original].each do |foo| 
    puts foo 
end 


original 
=> [:medium, :thumb, :original] 

-----------實施例2 ------------------ -------------------------

Photo.first.attachment.styles.keys.each do |foo| 
    puts foo 
end 

medium 
thumb 
=> [:medium, :thumb] 

----------實施例3 --- -----------------------------------------

foo = Photo.first.attachment.styles.keys + [:original] 

foo.each do |bar| 
    puts bar 
end 

medium 
thumb 
original 
=> [:medium, :thumb, :original] 

回答

3

你看到的問題是優先:不是增加:originalkeys和迭代,比如1次迭代,然後添加。

另一種方式來執行正確的順序是用括號:

(Photo.first.attachment.styles.keys + [:original]).each do |foo| 
    puts foo 
end 
相關問題