Why don't use setter method instead of assigning instance variable? 
```ruby
become.public_send("#{attr}=", send(attr))
```
Otherwise you can override some sensitive data.