Module: Statesman::Adapters::ActiveRecordQueries::ClassMethods
- Defined in:
- lib/statesman/adapters/active_record_queries.rb
Instance Method Summary collapse
Instance Method Details
#in_state(*states) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/statesman/adapters/active_record_queries.rb', line 9 def in_state(*states) states = states.flatten.map(&:to_s) joins(most_recent_transition_join). where(states_where(most_recent_transition_alias, states), states) end |
#most_recent_transition_join ⇒ Object
24 25 26 27 28 29 |
# File 'lib/statesman/adapters/active_record_queries.rb', line 24 def most_recent_transition_join "LEFT OUTER JOIN #{model_table} AS #{most_recent_transition_alias} ON #{table_name}.id = #{most_recent_transition_alias}.#{model_foreign_key} AND #{most_recent_transition_alias}.most_recent = #{db_true}" end |
#not_in_state(*states) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/statesman/adapters/active_record_queries.rb', line 16 def not_in_state(*states) states = states.flatten.map(&:to_s) joins(most_recent_transition_join). where("NOT (#{states_where(most_recent_transition_alias, states)})", states) end |