Валидация объекта из параметров формы в автомате перед переходом в определенное состояние - PullRequest
0 голосов
/ 23 декабря 2011

Я использую 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

Но хэш параметров в модели недоступен.Есть ли способ сделать то, что мне нужно?

1 Ответ

0 голосов
/ 25 мая 2012
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

Надеюсь, это поможет

...