Method: Og::SqlStore#reload

Defined in:
lib/og/store/sql.rb

#reload(obj, pk) ⇒ Object

Reloads an object from the store. Returns nil if the passes pk is nil.



171
172
173
174
175
176
177
178
179
180
181
182
# File 'lib/og/store/sql.rb', line 171

def reload(obj, pk)
  return nil unless pk

  klass = obj.class
  raise 'Cannot reload unmanaged object' unless obj.saved?
  sql = "SELECT * FROM #{klass.table} WHERE #{pk_field klass}=#{quote(pk)}"
  sql << " AND ogtype='#{klass}'" if klass.schema_inheritance_child?
  res = query sql
  obj.og_read(res.next, 0)
ensure
  res.close if res
end