Я пишу плагин Redmine, который должен проверить, заполнены ли какие-либо поля проблемы в зависимости от значений в других полях.
Я написал плагин, который реализует обратный вызов validate
, но я не знаю, как проверить значения полей, которые будут сохранены. Это то, что я до сих пор:Rails: как проверить значение поля объекта перед сохранением?
module IssuePatch
def self.included(receiver)
receiver.class_eval do
unloadable
validate :require_comment_when_risk
protected
def require_comment_when_risk
risk_reduction = self.custom_value_for(3)
if risk_reduction.nil? || risk_reduction.value == 0
return true
end
comment2 = self.custom_value_for(4)
if comment2.nil? || comment2.value.empty?
errors.add(:comment2, "Comment2 is empty")
end
end
end
end
end
Проблема здесь состоит в том, что self.custom_value_for()
возвращает значение уже написал к БД, но не один, что собирается быть написано, поэтому проверка Безразлично» т работы. Как проверить значение, которое было передано из веб-формы?
Любая помощь будет принята с благодарностью.
Какой метод является 'custom_value_for'? – Rodrigo
@Rodrigo, это метод модели проблемы – svz
Извините, я не знаю Redmine! Но это руководство поможет вам: http://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations – Rodrigo