I agree that the business logic here should be in the model, but I'm not sure that a before_create callback is the way to go since we need to perform a redirect to the new_subcription_path. I went ahead and created a method in the User model for checking whether or not a plan is needed and called this method instead in the before_filter. 

**Controller Code**
```ruby
  before_filter :check_number_of_contacts, :only => :create

  def check_number_of_contacts
    if current_user.check_number_of_contacts == User.new_plan_needed
      redirect_to new_subscription_path
    end
  end
```

**User Model**
```ruby
  #Class Methods
  def self.new_plan_needed
    'new plan needed'
  end

  def self.maximum_free_contacts
    200
  end

  #Instance Methods
  def check_number_of_contacts
    if self.plan_id.nil?
      if self.group.contacts.length == User.maximum_free_contacts
        return User.new_plan_needed
      end
    end
  end