# Strange StateMachine behaviour

**URL:** <https://www.ruby-forum.com/t/strange-statemachine-behaviour/180047>\
**Category:** Ruby\
**Created:** [December 10, 2009, 9:59am UTC](https://www.ruby-forum.com/t/strange-statemachine-behaviour/180047 "2009-12-10T09:59:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ErkA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/839c29/32.png) [@ErkA](https://www.ruby-forum.com/u/ErkA)\
**Post date:** [December 10, 2009, 9:59am UTC](https://www.ruby-forum.com/t/strange-statemachine-behaviour/180047/1 "2009-12-10T09:59:53Z")

</div>

hello I’ve strange problem with state machine

in my model

state\_machine :user\_state, :initial =\> :unconfirmed do  
state :unconfirmed, :value =\> 0  
state :confirmed, :value =\> 1  
state :trusted, :value =\> 2

```
event :verify do
  transition :unconfirmed => :confirmed
end

event :trust do
  transition [:unconfirmed, :confirmed] => :trusted
end

```

## end

## x ==\> #\<Price id: 88, user\_id: 1, station\_id: 13157, session\_id: “201924b30b53bd38250d396c252b2847”, user\_type: 2, price: #BigDecimal:9f0bdc0,‘0.34E2’,4(8), user\_state: 0, created\_at: “2009-12-10 06:22:06”, updated\_at: “2009-12-10 07:46:33”, ip: “10.10.10.1”\>

## x.user\_state\_transitions ==\> [#\<StateMachine::Transition attribute=:user\_state event=:verify from=0 from\_name=:unconfirmed to=1 to\_name=:confirmed\>, #\<StateMachine::Transition attribute=:user\_state event=:trust from=0 from\_name=:unconfirmed to=2 to\_name=:trusted\>]

events.valid\_for(x)  
==\> [#\<StateMachine::Event name=:verify transitions=[:unconfirmed  
=\> :confirmed]\>, #\<StateMachine::Event name=:trust transitions=  
[[:unconfirmed, :confirmed] =\> :trusted]\>]

-------- and here we go:  
x.verify!  
StateMachine::InvalidTransition: Cannot transition user\_state  
via :verify from :unconfirmed

x.trust!  
StateMachine::InvalidTransition: Cannot transition user\_state  
via :trust from :unconfirmed

on log Im getting only:

SQL (0.0ms) BEGIN  
SQL (1.8ms) ROLLBACK

but if I use  
x.verify false  
==\> true

what Im doing wrong or where is the problem?

best regards  
ErkA

---

<div class="post-metadata">

**Author:** ![ErkA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/839c29/32.png) [@ErkA](https://www.ruby-forum.com/u/ErkA)\
**Post date:** [December 10, 2009, 11:59am UTC](https://www.ruby-forum.com/t/strange-statemachine-behaviour/180047/2 "2009-12-10T11:59:08Z")

</div>

ErkA wrote:

> what Im doing wrong or where is the problem?

No idea. But you haven’t said what this StateMachine class is or where  
you got it from.

If it’s a Rails plugin, you’d be better off asking on a Rails mailing  
list. Better still, see if this StateMachine has its own mailing list.

---

<div class="post-metadata">

**Author:** ![ErkA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/839c29/32.png) [@ErkA](https://www.ruby-forum.com/u/ErkA)\
**Post date:** [December 10, 2009, 5:44pm UTC](https://www.ruby-forum.com/t/strange-statemachine-behaviour/180047/3 "2009-12-10T17:44:10Z")

</div>

ErkA wrote:

> hello I’ve strange problem with state machine
> 
> in my model
> 
> state\_machine :user\_state, :initial =\> :unconfirmed do  
> state :unconfirmed, :value =\> 0  
> state :confirmed, :value =\> 1  
> state :trusted, :value =\> 2
> 
> ```
> event :verify do
> transition :unconfirmed => :confirmed
> end
> 
> event :trust do
> transition [:unconfirmed, :confirmed] => :trusted
> end
> 
> ```
> 
> ## end

> what Im doing wrong or where is the problem?

I second what Brian said. What -is- this?  
Also, you’re not actually using :user\_state anywhere. What good is it?
