Could we avoid the find/save! if self already has the env?  e.g.

unless self.environments.include?(to_env)
  ... find, << , save! ...
end