我知道如何使用 - > {distinct}获得多对多关系的独特关系。
在我的情况下,我必须使用has_many关系并且想要使用 - > {distinct}在最后一个:
has_many :group_provider_pivots
has_many :groups, through: :group_provider_pivots, dependent: :destroy
has_many :agencies, -> { distinct }, through: :groups
这给了我一个错误:
PG::InvalidColumnReference: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
LINE 1: ...roup_provider_pivots"."provider_id" = $1 ORDER BY LOWER(agen...
在代码中:
<% @agencies.each do |agency| %>
当我删除不同的部分时,一切正常,但我没有得到独特的代理。
答案 0 :(得分:0)
您可以使用关系验证范围与模型属性的唯一性。例如,如果您的模型中有一个名为name
的属性,则可以通过此类验证获得不同的代理商
validates :name, , uniqueness: { scope: :agencies }
通过这样做,您可以确保每个模型实例都有一组独特的代理。