Skip to content

Silence uneccessary warning with default state with value#293

Open
wrozka wants to merge 1 commit into
pluginaweek:masterfrom
gitorious:master
Open

Silence uneccessary warning with default state with value#293
wrozka wants to merge 1 commit into
pluginaweek:masterfrom
gitorious:master

Conversation

@wrozka

@wrozka wrozka commented Dec 16, 2013

Copy link
Copy Markdown

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

changok commented Dec 19, 2013

Copy link
Copy Markdown

Yes, this one is so annoying.

@jmatraszek

Copy link
Copy Markdown

Any chance to get that merged?

@danteoh

danteoh commented Jan 20, 2014

Copy link
Copy Markdown

+1

7 similar comments
@jarinudom

Copy link
Copy Markdown

+1

@zdavis

zdavis commented Feb 22, 2014

Copy link
Copy Markdown

+1

@devdazed

Copy link
Copy Markdown

👍

@tradziej

Copy link
Copy Markdown

👍

@gnapse

gnapse commented May 28, 2014

Copy link
Copy Markdown

👍

@edraut

edraut commented Jun 4, 2014

Copy link
Copy Markdown

👍

@chrisferry

Copy link
Copy Markdown

👍

@igkins

igkins commented Jun 10, 2014

Copy link
Copy Markdown

👍

1 similar comment
@gilgen

gilgen commented Aug 12, 2014

Copy link
Copy Markdown

👍

@mhuggins

Copy link
Copy Markdown

+1

3 similar comments
@mgrachev

Copy link
Copy Markdown

👍

@shlensky

Copy link
Copy Markdown

👍

@ethernetdan

Copy link
Copy Markdown

+1

@vickodin

Copy link
Copy Markdown

So nice queue of 👍 :)

P.S. subscribed

@angelsystem

Copy link
Copy Markdown

+1 please

@dmitry

dmitry commented Jun 18, 2025

Copy link
Copy Markdown

It would be nice to merge. Any counter-proposal?

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