I'm not sure this is right.. it might be better to do self.new, then r.save on this line.  self.create just does new/save under the covers, but at least this way we'd get the save return code, rather than checking validity.