The whole point of join is that you only get characters between the joined items. You want one in front of every item. I don't know of a short way, but it seems more natural just to map them and then join them without a delimiter:
["name1", "name2"].map{|item| '&'+item}.join