rails 模型复杂关联解释

rails model complex association explained

我是 rails 的新手。我在 rails 示例之一中找到了这段代码 项目。

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

你能解释一下吗?

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 with conditions 只是一种根据条件 return 关联记录的方法。

希望对您有所帮助!