J'ai installé plusieurs gemmes state_machine dans mon application pour les utiliser dans un système de notification, mais chaque fois que je rencontre un problème ActiveSupport. Il semble généralement quelque chose presque identique à ceci:Rails ActiveSupport Problème avec les gemmes d'état pour les notifications
>> m = Message.new
TypeError: wrong argument type nil (expected Module)
from /home/Ryan/appname/app/models/message.rb:2:in `include'
from /home/Ryan/appname/app/models/message.rb:2
from /home/Ryan/.bundle/ruby/1.8/gems/activesupport-2.3.9/lib/active_sup
port/dependencies.rb:406:in `load_without_new_constant_marking'
from /home/Ryan/.bundle/ruby/1.8/gems/activesupport-2.3.9/lib/active_sup
port/dependencies.rb:406:in `load_file'
from /home/Ryan/.bundle/ruby/1.8/gems/activesupport-2.3.9/lib/active_sup
port/dependencies.rb:547:in `new_constants_in'
from /home/Ryan/.bundle/ruby/1.8/gems/activesupport-2.3.9/lib/active_sup
port/dependencies.rb:405:in `load_file'
from /home/Ryan/.bundle/ruby/1.8/gems/activesupport-2.3.9/lib/active_sup
port/dependencies.rb:285:in `require_or_load'
from /home/Ryan/.bundle/ruby/1.8/gems/activesupport-2.3.9/lib/active_sup
port/dependencies.rb:451:in `load_missing_constant'
from /home/Ryan/.bundle/ruby/1.8/gems/activesupport-2.3.9/lib/active_sup
port/dependencies.rb:106:in `rake_original_const_missing'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2503:in `const_m
issing'
from /home/Ryan/.bundle/ruby/1.8/gems/activesupport-2.3.9/lib/active_sup
port/dependencies.rb:118:in `const_missing'
from (irb):2
Je suis sur un ordinateur Windows 7 machine à l'aide activerecord, Bundler pour installer les pierres précieuses, et les rails 2.3.9..where vais-je tort? Y a-t-il des modifications à la base de données que je dois faire?
Edit: message.rb
include AlterEgo # include this first
include AlterEgo::ActiveRecordAdapter
state :unread, :default => true do
handle :state do
"unread"
end
transition :to => :read, :on => :view!
end
state :read do
handle :state do
"read"
end
end
Je ne suis pas positif, mais je ne parviens pas à adapter cela pour activerecord. dois-je créer une nouvelle base de données?
Nous avons besoin de plus d'information en ligne vous répondez à la classe, où l'erreur est soulevée la question – shingara
modifié pour inclure message.rb (désolé, j'ai oublié de changer ça de réponse en message!) ... il y a eu plusieurs variantes de ce code pour toutes les machines d'état que j'ai essayées (à peu près toutes) ... comme vous pouvez le voir, l'utilisation que j'ai car c'est très simple. – goddamnyouryan