You could split this into two lines to avoid repeating it, e.g.

    value = vm.send(fog_attr)
    value ||= find_address if foreman_attr == :ip