【发布时间】:2013-05-17 07:42:13
【问题描述】:
我的模型结构如下:
class Client < ActiveRecord::Base
has_many :charts
end
class Chart < ActiveRecord::Base
belongs_to :client
has_many :chart_data
end
class ChartDatum < ActiveRecord::Base
belongs_to :chart
end
ChartDatum 有一个名为“名称”的属性,该属性对于每个客户端都必须是唯一的。 我尝试使用 "validates_uniqueness_of :name, :scope => [:chart_id]" 但这有助于我获得特定图表的唯一键,但不适用于特定客户的所有图表。我正在寻找类似 "validates_uniqueness_of :name, :scope => [:client_id]" 的东西,但显然对于当前的结构,它不会成功。
有人可以帮我吗?
【问题讨论】:
-
您希望属于特定客户端的所有 chart_data 都使用相同的密钥?
-
我希望每个客户都有唯一的 chart_data。
-
但它没有直接关联...
-
这是业务需求。所以虽然没有直接关系,但我希望有这个唯一性约束。
标签: ruby-on-rails-3 has-many unique-constraint