Для набора Foobars со следующими идентификаторами:
1 2 3 5 7 9 11 15 18 19 22 23
Мне нужен способ вернуть Foobars со следующими идентификаторами на основе ActiveRecord:
baz(1) -> 1 2 3 5 7 9 11
baz(9) -> 3 5 7 9 11 15 18
baz(22) -> 9 11 15 18 19 22 23
Это должно быть совместимо с Ruby on Rails 2.3.9 (без Arel). Это невозможно сделать, просто вычтя и добавив 3 из идентификатора n, потому что в идентификаторах могут быть пробелы.
edit: Вот что я сделал в итоге:
firstseg = Foobar.all(:conditions => ["id <= " + params[:id]],
:limit=> 4, :order => "id desc").reverse
@Foobars = firstseg + Foobars.all(:conditions => ["id > " + params[:id]],
:limit => (7 - firstseg.length).to_s, :order => "id asc")
render 'showthem'