構建驗證程序,該驗證程序必須檢查屬於同一(選項)父級的多個兄弟姐妹。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
正在生成的錯誤:「未定義的方法`重疊的[]:陣列」指的語句
siblings.overlaps from, to
兄弟姐妹是複數這一事實使我假定它期待一個數組,所以這很奇怪。
[另一個原因是,其中聲明不接受*其中(「option_id =?」,則params [:option_id])*何處記錄尚待作爲驗證尚未完成創建]
刪除'.all'在'siblings' – phoet