내 클래스의 배열에 obj의 존재를 확인하는 include? (obj)와 같은 메소드를 정의하고 싶습니다. 루비에서이 작업을 수행 할 수있는 방법이 있습니까?객체 컬렉션을 위해 루비 메소드를 정의하는 방법은 무엇입니까?
나는 Item 클래스
class Item < ActiveRecord::Base
include Comparable
belongs_to :itemable, :polymorphic => true
def <=>(other)
self.itemable.id <=> other.itemable.id
end
...
end
하고 난 이런 식
item_set1.subset? item_set2
을 사용하고 싶지만 그것은 단지 확인 item.id => 과정과 사용 <를 사용하지 않는 밝혀 . 하위 집합이나 다른 방법을 재정 의하여이 작업을 수행하는 방법.
감사합니다.
그 부분 집합? 방법은 eql을 사용합니까? 해당하는 것을 판별하기위한 해시 및 해시? 감사합니다. – sarunw
맞습니다. Set에 저장된 것들은 eql을 필요로합니까? 그리고 의미있는 방식으로 정의 된 해쉬. 기본적으로 Object.eql? "같은 Ruby 객체입니다." 위에서 우리는 "동일한 데이터베이스 객체를 참조합니다."라는 의미로 다시 정의합니다. 이제 모든 하위 집합을 포함한 Set 작업이 작동합니다. –