Rails模型复杂关联说明

时间:2020-02-26 13:35:57

标签: ruby-on-rails activerecord model associations

我是新手。我在其中一个rails示例中找到了此代码 项目。

has_many :all_ticket_fields, -> { 
where(parent_id: nil)
.includes([:picklist_values, :flexifield_def_entry]) 
.order(:position)
}, class_name: 'DVClass::NormalSection'

你能解释一下吗?

1 个答案:

答案 0 :(得分:1)

这是ItilAssociationDVClass::NormalSection之间的一对多关联,假设您从ItilAssociation获取了一条记录

itil = ItilAssociation.first

itil.all_ticket_fields基本上将运行此查询,

DVClass::NormalSelection.where(itil_association_id: itil.id)
                        .where(parent_id: nil)
                        .includes([:picklist_values, :flexifield_def_entry]) 
                        .order(:position)

has_many带条件只是根据条件返回关联记录的一种方式。

希望有帮助!

相关问题