다음과 같이 명명 된 범위가 있습니다.named_scope 인수 목록에서 변수 앞에있는 별표는 무엇을 의미합니까?
named_scope :by_items, lambda |*items| {
:joins => :items,
:conditions => ["items.id in (?)", items.map(&::id)]
}
*item
은 무엇을 의미합니까? Item.find(:first, ...)
로 호출하면 정상적으로 작동합니다. 컬렉션을 사용하여 호출하려고하면 Item.find(:all, ...)
가 실패합니다.
다른 질문에서, 나는 서명이 있어야한다는 것을 알고 :
Order.by_items(item0, item1, ...)
그럼, 내 질문 정말입니다, 어떻게 쉼표로 구분 된 인수 목록으로 배열합니까?
Martin Fowler부터 배웠습니다 :(인수 목록에서 "*"를 사용하면 루비에서 가변 인수로 작업하는 데 도움이됩니다.) 인수 목록에서 * disks "disk"라는 배열로 전달 된 모든 디스크를 참조 할 수 있습니다. "* disks"라는 다른 함수를 호출하면 디스크 배열의 요소가 별도의 인수로 전달됩니다.)
UPDATE1
the "splat" operator에 대한 추가 정보
을! –