Ruby on Rails: сокращение, чтобы поставить запятые между элементами в массиве? - PullRequest
2 голосов
/ 06 августа 2010
users_allowed_to_be_viewed.map {|u| "#{u.id},"}

но это дает 1,2,3,

Какой бы короткий способ получить что-то вроде 1,2,3

Ответы [ 4 ]

5 голосов
/ 06 августа 2010

массив?

из 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"
4 голосов
/ 06 августа 2010
users_allowed_to_be_viewed.map{|u| u.id}.join(",")
3 голосов
/ 06 августа 2010
users_allowed_to_be_viewed.map(&:id).join(',')

Array#join также имеет псевдоним Array#*, хотя это может немного усложнить:

users_allowed_to_be_viewed.map(&:id) * ','
2 голосов
/ 06 августа 2010
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" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...