【发布时间】:2009-02-10 20:58:59
【问题描述】:
在使用AASMGem 时,是否可以在进入初始状态时调用方法?我希望在提交评论时调用 spam_check 方法,但它似乎不起作用。
class Comment < ActiveRecord::Base
include AASM
aasm_column :state
aasm_initial_state :submitted
aasm_state :submitted, :enter => :spam_check
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
def spam_check
# Mark the comment as spam or ham...
end
end
【问题讨论】:
-
我认为你的 :ham 和 :spam 是相反的。
-
评论从提交开始,如果是 ham 则被批准,如果是垃圾则被拒绝。但是,如果自动垃圾邮件检查器出错,批准的 cmets 也可能被标记为垃圾邮件等。
标签: ruby-on-rails ruby rubygems