Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Silence uneccessary warning with default state with value #293

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

wrozka
Copy link

@wrozka wrozka commented Dec 16, 2013

State machine is producing a false positive warnings like this:

Both `model class` and its :status machine have defined a different default for "status"

It happens with correct machines when states have values and a there is a default value from the schema (or any other integration).

class Request < ActiveRecord::Base
  # schema defines status as an int with default value of 0

  state_machine :status, :initial => :open do
    state :open, :value => 0
    state :closed, :value => 1
  end
end

This happens because at the moment of processing the :initial argument of the state_machine, the value of :open state is unknown (the block hasn't been evaluated yet), state with a default value (the state name) is created and it is compared with default value from schema (0) which produces the warning. Block with the definition of states is processed too late.

This problem can be fixed by setting the initial value as the very last thing that state machine constructor does. This way we can evaluate the block first in order to capture the correct values of states.

I believe this pull request closes: #285 and #279.

@changok
Copy link

changok commented Dec 19, 2013

Yes, this one is so annoying.

@jmatraszek
Copy link

Any chance to get that merged?

@danteoh
Copy link

danteoh commented Jan 20, 2014

+1

7 similar comments
@jarinudom
Copy link

+1

@zdavis
Copy link

zdavis commented Feb 22, 2014

+1

@devdazed
Copy link

👍

@tradziej
Copy link

👍

@gnapse
Copy link

gnapse commented May 28, 2014

👍

@edraut
Copy link

edraut commented Jun 4, 2014

👍

@chrisferry
Copy link

👍

@igkins
Copy link

igkins commented Jun 10, 2014

👍

1 similar comment
@gilgen
Copy link

gilgen commented Aug 12, 2014

👍

@mhuggins
Copy link

+1

3 similar comments
@mgrachev
Copy link

👍

@shlensky
Copy link

👍

@ethernetdan
Copy link

+1

@vickodin
Copy link

So nice queue of 👍 :)

P.S. subscribed

@angelsystem
Copy link

+1 please

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Warning when using ActiveRecord and defaults are the same