7
votes

Obtenir la liste des états / événements d'un modèle que AASM

J'ai intégré avec succès le gemme AASM le plus récent dans une application, en l'utilisant pour la création d'un sorcier. Dans mon cas, j'ai un ordre modèle

class Order < ActiveRecord::Base

  belongs_to :user
  has_one :billing_plan, :dependent => :destroy
  named_scope :with_user, ..... <snip>

  include AASM

  aasm_column :aasm_state
  aasm_initial_state :unauthenticated_user

  aasm_state :unauthenticated_user, :after_exit => [:set_state_completed]
  aasm_state : <snip>

  <and following the event definitions>

end


0 commentaires

5 Réponses :


3
votes

Je ne comprends pas comment le flux de commande fonctionne avec la commande et les transitions, mais je supposais que vous venez d'inclure mieux que pour expliquer votre scénario mieux.

classname.aasme_states_for_for_for_select vous donne une liste d'états déclarés dans le modèle.


1 commentaires

C'est obsolète maintenant. Utilisez classname.aasm.states_for_select .



1
votes

Également, pas sûr à 100% de ce que vous demandez, mais si vous voulez que tous les états et événements déclarés pour votre modèle, vous pouvez obtenir ceux en appelant ordre.AMASM_STATES et commandez respectivement.


0 commentaires

0
votes

Une syntaxe de rubis plus élégante peut être utilisée, comme dans cet exemple en IRB ci-dessous. Vous obtenez tous les états admissibles dans un tableau de symboles. xxx

=> [: créé,: Soumis,: rejeté ,: approuvé]


0 commentaires

7
votes

avec version 3.0.18 , vous pouvez utiliser classname.aastes.Astates


1 commentaires

classname.aasme.states.map (&: nom) vous permettra d'obtenir un tableau de symboles, ce qui peut être ce que vous voulez.



2
votes

pour Events dans 3.1.1 J'ai utilisé modèle.aasm.events.keys pour obtenir un tableau de symboles de nom d'événement. Dans les versions récentes .MAP (&: nom) ne le fera pas pour vous.


0 commentaires