state_machine только работает на новые записи

Я могу обменяться своим опытом...

я был испуган математикой начиная с начальной школы. Ненавистный это, не понял, не преследовал его.

, В отличие от этого, я всегда очаровывался компьютерами. Я изучаю программирование от "потребности знать" - я не могу выдержать компьютеры не понимания и программирование от самого низкого до высших уровней. Я почти полностью самообразован и имею карьеру как программист/архитектор.

В прошлом году, при убеждении моей жены, я начал возвращаться в колледж. Я зарегистрировался в коррективном классе Алгебры, зная, что это было болью. Это не было.

Так или иначе, в течение всех лет обучения разработать программное обеспечение OO, казалось, что я обманул меня в изучение, как думать математически. Понятия просто не были настолько трудными больше. Может случиться так, что я учился думать с точки зрения сложных систем, составленных из меньших, менее сложных идей.

я теперь исследую разработку игр, и , что некоторое серьезно ориентированное на математику программирование. ПУТЕМ больше, чем развитие бизнеса я делал к этой точке. Однако я не нахожу его настолько пугающим, потому что это , применялся mathetmatics. Работа для решения практических проблем, кажется, делает исследование менее утомительным и намного более интересным. Я нашел, что Википедия и Mathworld Вольфрама полезны. Если Вы уже знаете, как программировать, Вы перед игровой математикой изучения.

7
задан Tom Lehman 7 November 2009 в 05:11
поделиться

6 ответов

Не могли бы вы повторить переход между состояниями, используя команду publish **! ** вместо publish

1
ответ дан 7 December 2019 в 10:04
поделиться

Not contributing anything useful, but I just wanted to say I'm struggling with this error as well, in multiple state_machines throughout my application. And I can't switch to AASM, because I need to have more than one state_machine in the same model... So frustrating!

Anyway, you're not alone, it definitely still needs a solution.

1
ответ дан 7 December 2019 в 10:04
поделиться

Это все еще происходит при отключенном частичном обновлении? Comment.partial_updates = false

Если да, то мы знаем, что проблема заключается в идентификации грязных объектов. У вас должна быть возможность вызвать c.state_will_change! , прежде чем вы вызовете c.publish

1
ответ дан 7 December 2019 в 10:04
поделиться

Вызывает ли модель super при инициализации?

В документации state_machine сказано, что для состояний требуется инициализация

def initialize
  @seatbelt_on = false
  super() # NOTE: This *must* be called, otherwise states won't get initialized
end
1
ответ дан 7 December 2019 в 10:04
поделиться

Опять же, это не настоящий ответ на ваш вопрос, но здесь я попытался смоделировать вашу сессию:

>> c = Comment.new
=> #<Comment id: nil, body: nil, created_at: nil, updated_at: nil, state: "pending">
>> c.state
=> "pending"
>> c.publish
=> true
>> Comment.last.state
=> "published"
>> c = Comment.create
=> #<Comment id: 4, body: nil, created_at: "2009-11-05 07:12:53", updated_at: "2009-11-05 07:12:53", state: "pending">
>> c.publish
=> true
>> c.save
=> true
>> Comment.last.state
=> "published"

Как видите, у меня все работает так, как ожидалось. Проверял дважды. (Я создал модель с атрибутами body и state и поместил в нее ваш код.)

0
ответ дан 7 December 2019 в 10:04
поделиться

Попробуйте удалить: состояние из определения:

ОТ: state_machine: state,: initial =>: pending do

TO state_machine: initial =>: ожидает выполнения

0
ответ дан 7 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: