我正在使用 pluginaweek / state_machine gem 我需要验证来自用户提交的表单的对象,但仅在转换到某个状态之前。其他州不需要验证。
我有:
class Invoice < ActiveRecord::Base
state_machine :state, :initial => :draft do
before_transition :draft => :emited, :do => :check_date
state :emited
state :draft
end
def check_date
if params[:date] < Time.now
false
end
end
end
但是模型中没有params hash。有办法做我需要的吗?
答案 0 :(得分:0)
class Invoice < ActiveRecord::Base
state_machine :state, :initial => :draft do
state :draft
state :emited do
validate :validate_date
end
end
def validate_date
errors.add(:date, "in invalid") if params[:date] < Time.now
end
end
希望这有帮助