1

有两个模型记录一些月度统计数据,我正在尝试使用以下方法在模型中强制执行复合键约束:

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 正确地抛出了错误。

如果我在这里做错了什么有什么想法吗?

4

1 回答 1

2

尝试这个

validates :entity_id, :uniqueness => {:scope => [:year, :month]}

你可能想要

:presence => true 
于 2011-08-12T23:58:54.837 回答