1

Rails 2.3.2でAASMステートマシンGemを使用する際に問題が発生した人はいますか?それは私にとってはうまく機能していましたが、今は:を与えていNoMethodErrorます

NoMethodError (undefined method `state' for #<Comment:0x25cb8ac>):
  /usr/local/lib/ruby/gems/1.8/gems/rubyist-aasm-2.0.5/lib/persistence/active_record_persistence.rb:231:in `send'
  /usr/local/lib/ruby/gems/1.8/gems/rubyist-aasm-2.0.5/lib/persistence/active_record_persistence.rb:231:in `aasm_read_state'
  /usr/local/lib/ruby/gems/1.8/gems/rubyist-aasm-2.0.5/lib/persistence/active_record_persistence.rb:135:in `aasm_current_state'
  /usr/local/lib/ruby/gems/1.8/gems/rubyist-aasm-2.0.5/lib/persistence/active_record_persistence.rb:156:in `aasm_ensure_initial_state'
 app/controllers/comments_controller.rb:12:in `create'

AASMを使用する私のモデルの関連コードは次のとおりです。

class Comment < ActiveRecord::Base
  include AASM
  belongs_to :post          
  after_create :spam_check

  aasm_column :state
  aasm_initial_state :submitted
  aasm_state :submitted
  aasm_state :approved
  aasm_state :rejected

  aasm_event :ham do
    transitions :to => :approved, :from => [:submitted, :rejected]
  end

  aasm_event :spam do
    transitions :to => :rejected, :from => [:submitted, :approved]
  end     

  private          
  def spam_check
    # Invoke Askismet to see if the comment is spam...
  end
end

テーブルにstate列があることに注意してください。comments

  • なぜそれが機能しなくなったのか、何か考えはありますか?
4

2 に答える 2

2

ええと、コメントテーブルに「state」というフィールドが必要です。を使用して定義しましたaasm_column :state。これはRails2.3.2のバグではありません。:D

于 2009-04-09T21:56:30.350 に答える
1

aasmのホームページから、執筆時点で、更新が行われているようです...

RubyonRailsグループについて少し議論があります-それが役立つかどうかはわかりません。

実行中

gem list .*aasm --remote

たくさんの参照を投げました:

aasmith-yodlee (0.0.1.20090301132701)
bloom-aasm (2.0.3)
bloom-bloom-aasm (2.0.3)
caleb-aasm (2.0.2)
dunedain289-aasm (2.1.3)
dvdplm-aasm (2.0.6)
eric-aasm (2.0.4)
factorylabs-aasm (2.0.5.2)
gvaughn-aasm (2.0.4)
lostboy-aasm (2.0.5.1)
mikowitz-aasm (2.0.6)
netguru-aasm (2.0.6)
notch8-aasm (2.0.5)
rubyist-aasm (2.0.5)
runcoderun-aasm (2.0.5.1)
snoozer05-aasm (2.0.2)
spicycode-aasm (2.0.0)

「dvdplm-」、「factorylabs-」、「runco​​derun-」の一部またはすべてがgitフォークである可能性があります。1つ以上で問題が解決する場合があります。

于 2009-04-09T15:39:04.097 に答える