То, что вы ищете, это split :
[1] pry(main)> a = '19,20,4,1,1,4,1'
=> "19,20,4,1,1,4,1"
[2] pry(main)> a.split(',')
=> ["19", "20", "4", "1", "1", "4", "1"]
[3] pry(main)> a.split(',').map(&:to_i)
=> [19, 20, 4, 1, 1, 4, 1]
Но, поскольку вы строите 'строку' вручную, лучше использовать массив:
items = Array.new
items << @invitation_user1.id << @invitation_user2.id << @user1.id
items << @user2.id << @user2.id << @profile1.id << @profile2.id
@activities = Version.where(item_id: items)
В любом случае, способ получения идентификаторов странный, потому что ... что произойдет, если вы добавите больше пользователей?или профили?
Что бы я сделал (увидев так мало, как мы видим в вашем примере)
items = Array.new
items << get_invitation_user_ids
items << get_user_ids
items << get_profile_ids
@activities = Version.where(item_id: items)
и позже определю эти методы, как в:
def get_invitation_user_ids
InvitationUser.select(:id).map(&:id)
end
...