Search code examples
ruby-on-railsvalidationtagginghas-many

Validate the number of has_many items in Ruby on Rails


Users can add tags to a snippet:

class Snippet < ActiveRecord::Base

  # Relationships
  has_many :taggings
  has_many :tags, :through => :taggings
  belongs_to :closing_reason

end

I want to validate the number of tags: at least 1, at most 6. How am I about to do this? Thanks.


Solution

  • You can always create a custom validation.

    Something like

      validate :validate_tags
    
      def validate_tags
        errors.add(:tags, "too much") if tags.size > 5
      end