У меня возникли проблемы с гемом 'workflow', а именно, переходы не работают.
То, что я пытаюсь сделать, является очень простым, у меня есть состояние «прочитано / не прочитано» для сообщений между пользователями, переход инициируется, когда пользователь переходит на страницу «показа» для этого конкретного сообщения. Тем не менее, я не могу заставить переход работать даже в консоли:
\\ message.rb
class Message < ActiveRecord::Base
include Workflow
workflow do
state :unread do
event :view, :transitions_to => :read
end
state :read
end
end
в консоли, когда я пытаюсь сделать этот переход, я использую следующий код и получаю следующий вывод:
>> message = Message.new
=> #<Message id: nil, user_id: nil, message: nil, created_at: nil, u
pdated_at: nil>
>> message.current_state
=> #<Workflow::State:0x7ed4febc @name=:unread, @events={:view=>#<Workflow:
:Event:0x7ed4fd90 @action=nil, @name=:view, @transitions_to=:read, @meta={}
>}, @meta={}>
>> message.unread?
=> true
>> message.view!
NoMethodError: undefined method `workflow_state=' for #<Message:0x7ecfd5a4>
from /home/Ryan/.bundle/ruby/1.8/gems/activerecord-2.3.8/lib/active_reco
rd/attribute_methods.rb:259:in `method_missing'
from /home/Ryan/.bundle/ruby/1.8/gems/activerecord-2.3.8/lib/active_reco
rd/base.rb:2656:in `send'
from /home/Ryan/.bundle/ruby/1.8/gems/activerecord-2.3.8/lib/active_reco
rd/base.rb:2656:in `update_attribute'
from /home/Ryan/.bundle/ruby/1.8/gems/workflow-0.7.0/lib/workflow.rb:272
:in `persist_workflow_state'
from /home/Ryan/.bundle/ruby/1.8/gems/workflow-0.7.0/lib/workflow.rb:211
:in `transition'
from /home/Ryan/.bundle/ruby/1.8/gems/workflow-0.7.0/lib/workflow.rb:165
:in `process_event!'
from /home/Ryan/.bundle/ruby/1.8/gems/workflow-0.7.0/lib/workflow.rb:124
:in `view!'
from (irb):25
Я не могу найти НИЧЕГО о том, что здесь происходит, от Google и даже попытался заглянуть в: /home/Ryan/.bundle/ruby/1.8/gems/workflow-0.7.0/lib/workflow.rb, но Я не вижу причин, по которым это не работает. Это действительно простая проблема, и я сломал свой мозг, выясняя, что не так.
Спасибо за вашу помощь