2010-10-07 8 views
1

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?

+0

Nous avons besoin de plus d'information en ligne vous répondez à la classe, où l'erreur est soulevée la question – shingara

+0

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

Répondre

0

EDIT

J'ai fini juste en utilisant acts_as_state_machine oldschool puisque c'est une implémentation simple

Questions connexes