users_allowed_to_be_viewed.map {|u| "#{u.id},"}
но это дает 1,2,3,
1,2,3,
Какой бы короткий способ получить что-то вроде 1,2,3
1,2,3
массив?
из http://ruby -doc.org / core / classes / Array.html
array.join(sep=$,) → str Returns a string created by converting each element of the array to a string, separated by sep. [ "a", "b", "c" ].join #=> "abc" [ "a", "b", "c" ].join("-") #=> "a-b-c"
users_allowed_to_be_viewed.map{|u| u.id}.join(",")
users_allowed_to_be_viewed.map(&:id).join(',')
Array#join также имеет псевдоним Array#*, хотя это может немного усложнить:
Array#join
Array#*
users_allowed_to_be_viewed.map(&:id) * ','
users_allowed_to_be_viewed.join ',' ruby-1.8.7-p299 > users_allowed_to_be_viewed = [1,2,3] => [1, 2, 3] ruby-1.8.7-p299 > users_allowed_to_be_viewed.join ',' => "1,2,3"