From 42cdd8401ce7c88c8895c20a52e06ff42064fa7f Mon Sep 17 00:00:00 2001 From: Tim Rogers Date: Wed, 14 Feb 2018 08:55:11 +0000 Subject: [PATCH] Clarify README instructions for ActiveRecord * If you're using the ActiveRecord adapter, your transition class should `include Statesman::Adapters::ActiveRecordTransition`. * If you're using a PostgreSQL JSON column to store metadata, you won't be able to `include Statesman::Adapters::ActiveRecordTransition` as there is an incompatability (which we'll aim to resolve soon, see #309). Without this module, if you want to customise your transition class's "updated timestamp column", you will need to define `.updated_timestamp_column` yourself. --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a72f6b9f..2f2add53 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ Order.not_in_state(:checking_out) # => [#] By default Statesman stores transition history in memory only. It can be persisted by configuring Statesman to use a different adapter. For example, -ActiveRecord within Rails: +for ActiveRecord within Rails: `config/initializers/statesman.rb`: @@ -137,6 +137,10 @@ Generate the transition model: $ rails g statesman:active_record_transition Order OrderTransition ``` +Your transition class should +`include Statesman::Adapters::ActiveRecordTransition` if you're using the +ActiveRecord adapter. + If you're using the ActiveRecord adapter and decide not to include the default `updated_at` column in your transition table, you'll need to configure the `updated_timestamp_column` option on the transition class, setting it to another column @@ -178,8 +182,12 @@ or 5. To do that t.json :metadata, default: {} ``` -* Remove `include Statesman::Adapters::ActiveRecordTransition` statement from your - transition model +* Remove the `include Statesman::Adapters::ActiveRecordTransition` statement from + your transition model. (If you want to customise your transition class's "updated + timestamp column", as described above, you should define a + `.updated_timestamp_column` method on your class and return the name of the column + as a symbol, or `nil` if you don't want to record an updated timestamp on + transitions.) ## Configuration