【发布时间】:2015-05-28 02:51:58
【问题描述】:
我会尽力解释我的困境。
我有 2 个模型 用户和设备
设备有一个类型列。例如,它可以是平板电脑或智能手机。
然后我有另一个模型所有权
此模型同时属于用户和设备,因此表中的条目将用户与表示该用户拥有该设备的设备相匹配。
我需要在 Ownership 模型上设置一些验证,这是主要的。
- 任何设备都不能有多个所有权条目(就像验证 device_id 列是唯一的一样)
- 对于每种可用设备,用户只能拥有一个设备的所有权。
那么我将如何对最后一部分进行验证?我无法将 client_id 表设置为唯一的,因为它们将为不同类型的设备提供多个条目。但我希望他们每种类型的设备只有一行。
我希望这是有道理的。如果您需要更多详细信息,请告诉我。如果有任何见解,我将不胜感激!
谢谢!
【问题讨论】:
-
这听起来像是您想要使用范围选项验证唯一性。 guides.rubyonrails.org/…
-
这就是我之前看到的。但是该范围选项可以在我的设备表中的列上吗?所以我会有类似 validates :user_id, uniqueness: { scope: :device_type??, message: "Can only own one device type." 之类的东西。 }
标签: ruby-on-rails ruby-on-rails-3 activerecord rails-models