module

Clear::Model::HasSaving

Instance methods

delete

Delete the model by building and executing a DELETE query. A deleted model is not persisted anymore, and can be saved again. Clear will do INSERT instead of UPDATE then Return true if the model has been successfully deleted, and false otherwise.

Source
persisted?
Source
reload
Source
save(on_conflict : Clear::SQL::InsertQuery -> | Nil = nil)

Save the model. If the model is already persisted, will call UPDATE query. If the model is not persisted, will call INSERT

Optionally, you can pass a Proc to refine the INSERT with on conflict resolution functions.

Return false if the model cannot be saved (validation issue) Return true if the model has been correctly saved.

Example:

u = User.new
if u.save
  puts "User correctly saved !"
else
  puts "There was a problem during save: "
  # do something with `u.errors`
end

on_conflict optional parameter

Example:

u = User.new id: 123, email: "email@example.com"
u.save(-> (qry) { qry.on_conflict.do_update{ |u| u.set(email: "email@example.com") } #update
# IMPORTANT NOTICE: user may not be saved, but will be still detected as persisted !

You may want to use a block for on_conflict optional parameter:

u = User.new id: 123, email: "email@example.com"
u.save do |qry|
   qry.on_conflict.do_update{ |u| u.set(email: "email@example.com")
end
Source
save
Source
save!(on_conflict : Clear::SQL::InsertQuery -> | Nil = nil)

Performs save call, but instead of returning false if validation failed, raise Clear::Model::InvalidModelError exception

Source
save!

Pass the on_conflict optional parameter via block.

Source
update

Set the fields passed as argument and call save on the object

Source
update!

Set the fields passed as argument and call save! on the object

Source