Sha256: 01f5aeaa9aced989b57ec0a89746065905a8d74600e2e54fafc65ab15a24e153
Contents?: true
Size: 1.16 KB
Versions: 12
Compression:
Stored size: 1.16 KB
Contents
## # State Transition 是状态迁移。 # #reason 是原因。 # #subject 是状态的主体。 class Unidom::Action::StateTransition < Unidom::Action::ApplicationRecord self.table_name = 'unidom_state_transitions' include Unidom::Common::Concerns::ModelExtension include Unidom::Action::Concerns::AsCaused belongs_to :transitor_visitor, polymorphic: true belongs_to :transitor_party, polymorphic: true belongs_to :subject, polymorphic: true scope :transited_via, ->(transitor_visitor) { where transitor_visitor: transitor_visitor } scope :transited_by, ->(transitor_party) { where transitor_party: transitor_party } scope :subject_is, ->(subject) { where subject: subject } def self.transit!(subject: nil, from_state: nil, thru_state: nil, transitor_visitor: nil, transitor_party: nil, reason: nil, opened_at: Time.now) create! transitor_visitor: transitor_visitor, transitor_party: transitor_party, subject: subject, reason: reason, from_state: from_state, thru_state: thru_state, opened_at: opened_at end end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Action::StateTransition'
Version data entries
12 entries across 12 versions & 1 rubygems