2014-02-21 2 views
0

배열에 기호를 추가 한 후 키가 출력되지 않는 이유는 무엇입니까?배열에 기호를 추가 한 후 키가 출력되지 않는 이유는 무엇입니까?

paperclip에있는 파일의 이름을 바꾸는 방법에 대해서는 question이 발견되었습니다. 늘어나는만큼 대답은 배열에 추가되는 기호를 보여 주므로 레일 콘솔에서 실험 해 보았습니다.

그러나 문제가 발생했습니다. : 원래 기호를 배열에 추가하면 두 개의 키가 아닌 "원본"출력 만 보입니다.

내가 원하는 결과를 복제하는 데 가장 가까운 것은 예제 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

당신이보고있는 문제는 우선 순위입니다 : 대신 예를, 1 반복을 keys:original을 추가하고 반복의 다음에 추가합니다.

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

올바른 순서를 시행하는 또 다른 방법은 괄호를 사용하는 것입니다

관련 문제