0
건물 및 목록의 두 가지 모델이 있습니다. Listing 모델은 Building에 속합니다. 주어진 시간에 활성 리스팅 레코드 수에 따라 Listing에서 생성 할 수있는 레코드 수를 제한하려고했습니다. Listing.active.count 우리는 건물의 정수 열이 한계로 사용 된 경우 유효성 검사를 사용하려고 X.보다 더 결코 수 있지만, 작업을 다음과 같은 오류가 발생하지 않은레일 5.1 다른 객체에 종속 된 객체의 유효성 확인
undefined method `>=' for #<Array:0x007f05ec4db388>
Class Listing < Application Record
validates :validate_listing_count, on :create
private
def validate_listing_count
errors.add(:base, "You have too many active listings, please destroy a listing or contact your Account Manager if you need more listings") unless too_many_siblings?
end
def active_siblings
building.listings.where(active: true)
end
def too_many_siblings?
active_siblings.select { |sib| sib.id != id } >= (building.listing_limit - 1)
end
end
나는 그것을 시도했지만 동일한 오류가 발생했습니다. 우리 대학은 그가 잘못된 방식으로 접근했을 수도 있다고 생각합니다. –
다시 시도하고 싶을 수도 있습니다. 내 코드가 올바르지 않을 수도 있지만 오류가 발생해서는 안됩니다. 코드에'> = '연산자가 있습니까? BTW, 레일즈 콘솔을 테스트에 사용하고 있다면 새로운 모델 코드가로드되도록 모델을 변경할 때마다 콘솔을 종료하고 다시 열어야합니다. –
그래, 우리는 당신의 업데이트 된 코드를 보았고 그 코드는 반대가되었다. 그것은 내가 현재/너무 많은 활성 레코드를 가지고 있다는 말 때문에 새로운 레코드 나 기존 레코드를 업데이트/생성 할 수 없습니다. (테스트를 위해 사용하는리스트 한계는 3이고 활성 레코드는 하나입니다) –