New Features¶ ↑
-
A uuid plugin has now been added. This plugin will automatically create a uuid for newly created model objects.
Model.plugin :uuid Model.create.uuid => # some UUID
-
Model#json_serializer_opts has been added to the json_serializer plugin, allowing you to override the JSON serialization options on a per instance basis without passing the options directly to Model#to_json. This is useful if you are including the model instance inside another datastructure that will be serialized to JSON.
obj.json_serializer_opts(:root => true) [obj].to_json # => '[{"obj":{"id":1,"name":"Foo"}}]'
Other Improvements¶ ↑
-
The Database#transaction :retry_on option now works when using savepoints.
-
Calling Database#table_exists? inside a transaction will now use a savepoint if the database supports it, so that if the table doesn’t exist, it will not affect the state of the transaction.
-
Blobs can now be used as bound variables in the oracle adapter.
-
The sqlanywhere adapter now works with database sharding.
-
The Dataset#full_text_search :rank option has been fixed to order by rank descending instead of ascending.
-
External adapters that do not support INSERT with DEFAULT VALUES can now override Dataset#insert_empty_columns_values to set the columns and values to use for an empty INSERT.
-
External adapters can now implement Dataset#date_add_sql_append to integrate with the date_arithmetic extension.