0
ビルドとリスティングの2つのモデルがあります。リストモデルはBuildingに属します。私たちは、特定の時間におけるアクティブなリスティングレコードの数に応じてリスティングで作成できるレコードの数を制限しようとしています。 Listing.active.countはRails 5.1別のオブジェクトに依存するオブジェクトの検証
undefined method `>=' for #<Array:0x007f05ec4db388>
、私たちは、ビル内の整数列が限度として使用された場合の検証を使用しようとしましたが、それは次のようなエラーが作業してきていなかったX.以上になることはありません
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
私はそれを試みましたが、同じエラーが発生しました。私の大学は、彼がこれを間違った方法で近づいてきたと考えています。 –
もう一度やり直してください。私のコードは正しくないかもしれませんが、そのエラーを生成すべきではありません。あなたのコードに '> = '演算子がありますか?ところで、テスト用にRailsコンソールを使用している場合は、新しいモデルコードがロードされるように、モデルを変更するたびにコンソールを終了してから再度開く必要があります。 –
okだから私たちはあなたの更新されたコードを見て、それは反対に動作している。現時点でアクティブなレコードが多すぎると言っているため、新しいレコードや既存のレコードを更新/作成することはできません。 –