2011-01-27 7 views
3

두 개의 객체 @tracks (열거 가능) 및 @artist가 있습니다. 모든 트랙과 아티스트가 포함 된 열거 형을 만들고 싶습니다.Ruby : 배열 끝에 객체 추가

change_events = object.map(&:change_events).flatten 

내 생각했다 : 이것은 내가 할 것입니다 방법에 전달할 수 있습니다 (각 트랙을, 그리고 작가가 변경 이벤트가) 너무입니다

objects = @artist.tracks 
objects << @artist 

그러나 그것은 나에게 오류를 제공합니다 두 번째 줄 (의미가 있습니다,하지만 난 해결하는 방법을 알고하지 않는)에 대한 :

Track(#17816) expected, got Artist(#17572) 

내가 이것을 할 수있는 방법에 대한 아이디어를 주시면 감사하겠습니다!

+0

은 아티스트가 많은 트랙을 가지고 있거나 아티스트 테이블의 트랙 열에있는 트랙 목록과 같은 종속 테이블을 추적합니까? –

+0

아티스트는 여러 트랙이 있습니다. 그러나 etarion의 솔루션은 훌륭합니다. – tiswas

+0

@tiswas : artist.tracks는 레일스 관계를 제공합니다 .Array.tracks.all을 사용하여 배열로 가져옵니다. –

답변

5

이 오류 (오류는 @artist.tracks의 반환 값)는 처리중인 배열이 아니라 일부 레일 관련 데이터 형식임을 나타냅니다. 당신은 시도 할 수

objects = @artist.tracks.to_a 
objects << @artist 

그러나 그들은 모두 당신이 생각 잘해야 필요로하는 방법에 응답하면 배열의 불 균질 한 값을 사용하여, 종종 좋지 않다.