in base alla query, il tuo scenario consiste nel selezionare quei messaggi in cui user_one è l'utente corrente o user_two è l'utente corrente. quindi, piuttosto che una query complessa, ciò che puoi semplicemente fare è questo
Message.where("messages.user_one = ? OR messages.user_two =?", current_user, current_user).order("m_id ASC").limit(20)
ora per aggiungere dettagli ad esso per l'utente. puoi attraversare i messaggi visualizzati e recuperare l'utente per ogni messaggio e visualizzarlo. oppure puoi creare una matrice di hash e restituirla alla vista.