1


0

AASM GemがRails 2.3.2で壊れた?

http://github.com/rubyist/aasm/tree/master [AASM]ステートマシンGem with Rails 2.3.2の使用に問題がある人はいますか? それは私のためにうまく働いていましたが、今 `NoMethodError`を与えています:

NoMethodError (undefined method `state' for #):
  /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

comments`テーブルには state`列があります。

  • それがもはや機能しない理由は何ですか?

2 Answer


2


ええと、あなたはあなたのコメントテーブルに 'state’という名前のフィールドが必要です。 `+ aasm column:state`を使用して定義しました。 これはRails 2.3.2のバグではありません。 :D


1


http://rubyi.st/aasm/[aasm home page]から、これを書いている時点では、アップデートが来ているようです...

実行中

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)runco​​derun-aasm(2.0.5.1)snoozer05-aasm(2.0.2)spicycode-aasm(2.0.0)

"dvdplm-"、 "factorylabs-"、および "runco​​derun-"のうちのいくつかまたはすべてがgitフォークである可能性があります。 あなたは1つ以上の問題があなたの問題を解決することに気付くかもしれません。