Supabase::Client
Inherits Supabase::ClientBuilder < Reference < Object
Constructors
Creates a new Supabase client
Raises ArgumentError if url or api_key is empty.
Instance methods
Executes a DELETE query
Returns response body as String
Raises error if request fails.
Example:
response = client
.from("users")
.eq("id", "1")
.delete
Bulk delete
response = client
.from("users")
.in_("id", [1, 2])
.delete()
.execute
puts response
Initializes a query for the given table
Raises ArgumentError if table name is empty
query = client.from("users")
Executes an INSERT query with the given JSON payload
Returns response body as String
Raises error if request fails
Raises error if payload is empty
Example:
payload = %({"name": "Alice", "age": 30})
response = client
.from("users")
.insert(payload)
.execute
puts response
Bulk insert
payload = %([
{"id": 1, "name": "Bob"},
{"id": 2, "name": "Charlie"}
])
response = client
.from("users")
.insert(payload)
.execute
puts response
Execute a RPC request Argument rpc - name of supabase function
Returns response body as String
Raises error if request fails
Raises error if argument is empty
response = client.rpc("hello_world") puts response
Executes a SELECT query
Returns response body as String
Raises error if request fails
Example:
response = client
.from("users")
.select("*")
.eq("active", "true")
.execute
puts response
Executes an UPDATE query with the given JSON payload
Returns response body as String
Raises error if request fails
Raises error if payload argument is empty
Example:
payload = %({"name": "Charlie"})
response = client
.from("users")
.eq("id", "1")
.update(payload)
.execute
puts response
Executes an UPSERT query with conflict resolution on specified columns
Returns response body as String
Raises error if request fails
Raises error if arguments is empty
Raises error if on_conflict has dupblicetes
Example:
payload = %({"id": 1, "name": "Bob"})
response = client
.from("users")
.upsert(payload, ["id"])
.execute
puts response
Bulk upsert
payload = %([
{"id": 1, "name": "Bob"},
{"id": 2, "name": "Charlie"}
])
response = client
.from("users")
.upsert(payload, ["id"])
.execute
puts response