2
我工作的一個回報率的項目,我想有唯一性驗證我的車型之一,對自定義的範圍檢查:只有validate_uniqueness_of可以使用自定義作用域嗎?
class Keyword < ActiveRecord::Base
belongs_to :keyword_list
scope :active, -> { where("expiration > ?", DateTime.now) }
validates :name, uniqueness: { scope: [:active, :keyword_list_id] }
end
,這是行不通的。它檢查數據庫活躍列,它不存在,並拋出這個錯誤:
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column keywords.active does not exist
所以,我的問題是,有沒有什麼辦法,使這項工作,或者我必須寫一個自定義的驗證?如果是這樣,是否有關於它應該看起來如何擊中數據庫太多的提示?