有两个记录一些月度统计数据的模型,我正在尝试使用以下方法在模型中强制执行复合键约束:
validates_uniqueness_of :entity_id, :scope => [:year, :month]
当尝试在记录上运行.valid?
方法时,我不断收到错误,因为显然ActiveRecord正在生成不正确的SQL。
SQLite3::SQLException: near "FROM": syntax error: SELECT FROM "table" WHERE ("table"."entity_id" = 1) AND ("table"."year" = 2007) AND ("table"."month" = 6) LIMIT 1
请注意,Rails没有在select语句中添加*,因此SQLite正确地抛出错误。
如果我在这里做错了什么想法?
答案 0 :(得分:2)
试试这个
validates :entity_id, :uniqueness => {:scope => [:year, :month]}
你可能想要
:presence => true