對於集Foobars與以下ID標識:選擇7項與集中在ID「N」
1 2 3 5 7 9 11 15 18 19 22 23
我需要一種方法來與下面的IDS,基於ActiveRecord的返回Foobars:
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(no Arel)兼容。它不能通過簡單地從id n中減去並添加3來完成,因爲ID中可能存在空白。
編輯:這是我最後還是沒買:
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'
請更明確有關巴茲方法應與參數做什麼。另外,它是否總是使用ID的排序列表? – Kelvin