The acts_as_valid_list plugin depends on the acts_as_paranoid plugin. Once acts_as_valid_list has been installed it can be used by calling the acts_as_valid_list method in the appropriate model class. To create a belongs_to relationship between a model and a valid list just use the belongs_to_valid_list method passing in any arguments you'd like to send to the belongs_to method, and in addition you can send a :conditions argument that will be used to call the find method on the valid list to validate that the specified value for the valid list reference exists in the valid list table. For example: class Status acts_as_valid_list :paranoid_attr => :deleted_on end class Task belongs_to_valid_list :status, :conditions => ['owner_id=?', 3] end Here the statuses table would have a name column that will be validated as present and unique. It will also have a column called deleted_on that will be used by the acts_as_paranoid plugin to mark items as deleted. The tasks table should have a column called status_id, and there will be a belongs_to relationship defined with the Status class, and before a Task instance is saved it's status_id will be validated to confirm that the referenced status exists in the statuses table where the status' owner_id is equal to three.