динамическая validates_length_of - PullRequest
       0

динамическая validates_length_of

1 голос
/ 01 октября 2010

Я пытаюсь сделать validates_length_of, но указываю диапазон / минимум / максимум во время выполнения.

Например, у нас есть родительская модель:

class Parent < ActiveRecord::Base
  has_many :children

  # with attributes min_length, max_length
end

И дочерниймодель:

class Child < ActiveRecord::Base
  belongs_to :parent

  # with an attribute reference
end

Итак, что я хотел бы сделать в классе Child:

validate :reference_length

def reference_length
  options = { :within => parent.min_length..parent.max_length }
  self.class.validates_length_of :reference, options
end

Но это не работает, есть ли способ сделать это без выполненияerrors.add(:reference, message) if...

1 Ответ

1 голос
/ 01 октября 2010

Использование лямбда-функции может работать:

validates_length_of :reference, :minimum => lambda{parent.min_length},
                                :maximum => lambda{parent.max_length}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...