У кого-нибудь возникли проблемы с использованием автомата G12 с рельсами 2.3.2? Он работал хорошо для меня, но теперь давая NoMethodError
:AASM Gem, поврежденный Rails 2.3.2?
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
таблице.
- Любые идеи, почему это больше не работает?
У меня есть эта колонка в моей таблице комментариев. –
Получается, что у меня не было этой колонки! Он был определен в моей миграции и schema.rb, но я также запускаю SQL-файл, чтобы предварительно заполнить базу данных, и она немного не синхронизировалась и удаляла столбец «состояние». –