2014-01-21 22 views
0

我得到這個類型的數組從查詢中Rails的控制檯:如何提取子ID每三個ID,Rails的祖先

←[1m←[35mCategory Load (0.0ms)←[0m SELECT id FROM `categories` WHERE `categories`.`ancestry` = '56' 
=> [57, 64, 73, 74, 80, 94, 102, 103, 120] 

我希望能夠提取每個第三ID從那裏並插入到其他目的。

我想出了類似這樣的東西,它可能工作,但我怎麼能創建這個工作dynamicaly,並重新計算數組的每一個第三個值?

這是第一個數組:

@ids_to_exclude = [73,94,120] 

如何計算每個第三?在Java中使用一些數組元素id,其中數組的第一個元素的位置是0,每個元素的下一個是+1?

這是第二個數組:

@except_every_third= @category('created_at DESC').where('id NOT in (?)', @ids_to_exclude) 

有一些指導或例子,你可以與我分享?

+2

http://stackoverflow.com/questions/4689186/how-do-you-select-every-nth-item-in-an-array – devanand

+1

的http:// stackoverflow.com/questions/5575172/doing-each-in-ruby-how-to-place-a-br-every-n-items – devanand

+1

http://www.dzone.com/snippets/get-every-nth- member-ruby – devanand

回答

0

我發現這個有用的

require "pp" 

pp [57, 64, 73, 74, 80, 94, 102, 103, 120].each_slice(3).to_a.map { | e | 
    # e.reverse.drop(1) 
    e.drop(1) 
}.flatten 
+0

那我怎麼能實現這個內部控制器? – Edgars

+0

@EdgarsRozenfelds只是從第一個陳述中得出結果,並在each_slice之後使用... – devanand