использовать группирование:
Book.where(:user_id => @user.id).grouped('title_id')
Проблема в том, что если вы делаете группировку, у вас не может быть разных идентификаторов книг, они все сгруппированы в один ряд.Вы можете использовать GROUP_CONCAT, чтобы обойти это:
Book...select('books.*, GROUP_CONCAT(id) as ids')
таким образом, у вас будет атрибут book ids
для каждой группы