# Array issues

**URL:** <https://www.ruby-forum.com/t/array-issues/72254>\
**Category:** Rails\
**Created:** [October 16, 2006, 1:33am UTC](https://www.ruby-forum.com/t/array-issues/72254 "2006-10-16T01:33:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![patcito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@patcito](https://www.ruby-forum.com/u/patcito)\
**Post date:** [October 16, 2006, 1:33am UTC](https://www.ruby-forum.com/t/array-issues/72254/1 "2006-10-16T01:33:36Z")

</div>

Hey all,  
When I do:  
@posts = Post.find(:all)[0,5]  
it gives me the first 5 posts

But when I do:  
@posts = Post.find(:all)[10,20]  
it gives me something like 20 posts or more, shouldn’t this give me only  
10  
post from 10 to 20?  
what am I doing wrong?

thanx in advance

Pat

---

<div class="post-metadata">

**Author:** ![patcito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@patcito](https://www.ruby-forum.com/u/patcito)\
**Post date:** [October 16, 2006, 2:31am UTC](https://www.ruby-forum.com/t/array-issues/72254/2 "2006-10-16T02:31:41Z")

</div>

On Oct 15, 7:32 pm, “Patrick A.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> thanx in advance
> 
> Pat

No, on an array it works like this…

array[offset, length]

So Post.find(:all)[10,20] will give you 20 posts starting at number 10.

\_Kevin

---

<div class="post-metadata">

**Author:** ![patcito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@patcito](https://www.ruby-forum.com/u/patcito)\
**Post date:** [October 16, 2006, 4:04am UTC](https://www.ruby-forum.com/t/array-issues/72254/3 "2006-10-16T04:04:05Z")

</div>

> But when I do:  
> @posts = Post.find(:all)[10,20]  
> it gives me something like 20 posts or more, shouldn’t this give me only  
> 10  
> post from 10 to 20?  
> what am I doing wrong?

You want to use the range syntax, like arr[10…20]

---

<div class="post-metadata">

**Author:** ![patcito](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@patcito](https://www.ruby-forum.com/u/patcito)\
**Post date:** [October 16, 2006, 7:57am UTC](https://www.ruby-forum.com/t/array-issues/72254/4 "2006-10-16T07:57:08Z")

</div>

On Oct 15, 2006, at 5:30 PM, \_Kevin wrote:

> > post from 10 to 20?  
> > what am I doing wrong?
> 
> No, on an array it works like this…
> 
> array[offset, length]
> 
> So Post.find(:all)[10,20] will give you 20 posts starting at number  
> 10.

## $ ri Array#[] --------------------------------------------------------------- Array#[] array[index] → obj or nil array[start, length] → an\_array or nil array[range] → an\_array or nil array.slice(index) → obj or nil array.slice(start, length) → an\_array or nil array.slice(range) → an\_array or nil

```
  Element Reference---Returns the element at index, or returns a
  subarray starting at start and continuing for length elements, or
  returns a subarray specified by range. Negative indices count
  backward from the end of the array (-1 is the last element).
  Returns nil if the index (or starting index) are out of range.

     a = ["a", "b", "c", "d", "e"]
     a[2] + a[0] + a[1] #=> "cab"
     a[6] #=> nil
     a[1, 2] #=> ["b", "c"]
     a[1..3] #=> ["b", "c", "d"]
     a[4..7] #=> ["e"]
     a[6..10] #=> nil
     a[-3, 3] #=> ["c", "d", "e"]
     # special cases
     a[5] #=> nil
     a[5, 1] #=> []
     a[5..10] #=> []

```

–  
Eric H. - removed\_email\_address@domain.invalid - [http://blog.segment7.net](http://blog.segment7.net)  
This implementation is HODEL-HASH-9600 compliant

[http://trackmap.robotcoop.com](http://trackmap.robotcoop.com)
