2011-05-23 44 views
1

的映射的名單上有group_ids的像這樣一個長長的清單:如何使標識

@group_ids = @groups.map(&:group_id) 
Rails.logger.info @group_ids 
[182, 122, 181, 173, 167, 58, 13, 11, 180, 40, 71, 1, 29, 47, 142, 52, 174, 7, 168, 171, 156, 120, 79, 72, 54, 26, 65] 

我怎麼能採取所有這些group_ids輸出:

group_id:11 OR group_id:22 etc 

回答

3
@group_ids = [182, 122, 181, 173, 167, 58, 13, 11, 180, 40, 71, 1, 29, 47, 142, 52, 174, 7, 168, 171, 156, 120, 79, 72, 54, 26, 65] 
@group_ids.map{|id| "group_id:#{id}"}.join(" OR ") 
#=> "group_id:182 OR group_id:122 OR group_id:181 OR group_id:173 OR group_id:167 OR group_id:58 OR group_id:13 OR group_id:11 OR group_id:180 OR group_id:40 OR group_id:71 OR group_id:1 OR group_id:29 OR group_id:47 OR group_id:142 OR group_id:52 OR group_id:174 OR group_id:7 OR group_id:168 OR group_id:171 OR group_id:156 OR group_id:120 OR group_id:79 OR group_id:72 OR group_id:54 OR group_id:26 OR group_id:65" 
6

只是做:

@group_ids * " OR " 

(Ruby是巨大的)

+0

將它不知道的或添加到最後一個記錄? – AnApprentice 2011-05-23 21:42:25

+0

會,它只是一樣'@ group_ids.join(「OR」)'(在這種特殊情況下),當然 – fl00r 2011-05-23 21:42:56

+0

,這就是支架的點;) – apneadiving 2011-05-23 21:43:24