Rails检查记录是否优先

时间:2016-02-19 07:36:50

标签: ruby-on-rails oop methods

我正在遍历记录列表。我需要检查一下,如果记录是第一次做XYZ,如果没有做ABC。不幸的是我无法做到这一点:

user = User.first 

user = User.find(:id)
user.first?

解决方案发布在

下面

2 个答案:

答案 0 :(得分:3)

1。制作方法以获取下一个和上一个记录

def next 
  [Model].where("id > ?", id).first
end

def prev
  [Model].where("id < ?", id).last
end

2。制作检查记录是否为第一的方法

def first?(record)
  [Model].first == record
end

3。检查记录是否是第一个

records.each do |record|
  if record.first?(record)
    record.update_attributes(attr: record.attr + record.attr)
  else
    prev_rec = [Model].find(record.id).prev
    record.update_attributes(attr: prev_rec.attr + record.attr )
  end
end
  1. 返回truefalse

答案 1 :(得分:0)

我会确保[Model] .first是持久的,这样每次运行循环时它都不会调用数据库。