Ошибка перекрытия дат пользовательской проверки rails3
Создание валидатора, который должен проверять нескольких братьев и сестер, принадлежащих одному и тому же (опционально) родителю.
class Optionrate < ActiveRecord::Base
belongs_to :option
attr_accessible :from, :to, :option_id
validates_presence_of :from, :to
validate :not_overlap
scope :overlaps, ->(from, to) do
where "((from <= ?) and (to >= ?))", to, from
end
def overlaps?
overlaps.exists?
end
def overlaps
siblings.overlaps from, to
end
def not_overlap
errors.add(:key, t('overlap_message')) if overlaps?
end
def siblings
Optionrate.where('option_id = ?', option_id).all
end
генерирует ошибку: "неопределенный метод" перекрывается "для []:Array" со ссылкой на оператор
siblings.overlaps from, to
Тот факт, что братья и сестры множественного числа, заставляет меня предположить, что он ожидает массив, так что это странно.
[Другое было то, что оператор where не принимал * где ('option_id =?', Params[:option_id])*, откуда запись еще не создана, поскольку проверка еще не завершена]
1 ответ
Пожалуйста, попробуйте запустить код после удаления .all
от Optionrate.where('option_id = ?', option_id).all
потому что, когда вы используете .Where
тогда нет необходимости использовать .all
метод.
Или же
Посмотрите следующий URL для ссылки http://guides.rubyonrails.org/3_2_release_notes.html