class Scenario < ActiveRecord::Base attr_accessible :name, :agent_ids belongs_to :user, :counter_cache => :scenario_count, :inverse_of => :scenarios has_many :scenario_memberships, :dependent => :destroy, :inverse_of => :scenario has_many :agents, :through => :scenario_memberships, :inverse_of => :scenarios validates_presence_of :name, :user validate :agents_are_owned protected def agents_are_owned errors.add(:agents, "must be owned by you") unless agents.all? {|s| s.user == user } end end